Profilowanie kodu w VS2013
Metody profilowania
- Sampling zbiera dane statystyczne dotyczące wykonywanej aplikacji próbkując obciążenie CPU
- Instrumentation - pomiary wywołania poszczególnych funkcji
- Concurrency informacje aplikacji wielowątkowych
- .NET memory użycie pamięci i garbage collection
- Tier interaction zawołania ADO.NET do baz danych SQL Serwera
Performance Session
- Performance Session - konfiguracja analizy + raporty
- Okno Perforamnce Explorer: konfiguracja sesji, uruchamianie testów, porównywanie raportów
- Targets - cel analizy: projekt, działający proces, plik wykonywalny
- Reports - pliki zawierające informacje zebrane podczas analizy
Wymagania
- uprawnienia administracyjne - wymagane przez metody próbkowania (sampling) oraz mające dostęp do wywołań systemowych
- skompilowanie aplikacji do wersji Release
- Windows symbols files - definicja nazw funkcji systemowych
Raport
- Hot Path najaktywniejsza ścieżka drzewa wywołań funkcji
- Lista funkcji wykonujących najwięcej pracy
Inclusive- łącznie dla całej funkcji,Exclusive- po odjęciu funkcji wołanych z wnętrza analizowanej funkcji
Szczegóły analizy funkcji
Error List
- Okno
Error Listzawiera ostrzeżenia i wskazówki dotyczące efektywności aplikacji - Performance Rules: błędy, ostrzeżenia, informacje
Filtrowanie wyników
Żródło: http://msdn.microsoft.com
Porównywanie raportów
Ćwiczenia
- Zaloguj się do serwera TFS. Z kolekcji
testwybierz projekt zespołowyprojekt2w którym znajduje się katalogSlownikzawierający rozwiązanie przykładowego programu. Zmapuj położenie tego katalogu z lokalnym katalogiem, pobierz pliki projektu i utwórz kod do edycji w Visual Studio. - Przetestuj działanie aplikacji na przykładowych plikach wejściowych. Program tworzy słownik (unikatową, posortowaną listę słów) na podstawie dowolnego pliku tekstowego. Wygeneruj słownik i wyeksportuj jego zawartość do pliku tekstowego.
- Uruchom profilowanie aplikacji w trybie
Instrumentation(ten tryb nie wymaga uprawnień administratora) Analize → Performance and Diagnostics - Przeanalizuj wyniki w celu wykrycia funkcji, których wykonanie zajmuje najwięcej czasu i spróbuj przyśpieszyć ich działanie.
- Wyselekcjonuj tylko wybrany fragment przebiegu profilowania (
Filter by Selection) i znajdź najdłużej wykonywaną funkcję (Hot Path) - Po wykonaniu poprawek uruchom proces profilowania ponownie.
- Porównaj wyniki uzyskane w kolejnych procesach profilowania
- Utwórz nową sesję analizy wydajności i skonfiguruj ją w taki sposób aby raport uwzględniał analizę pamięci
- Wybierz Analize → Profiler → New Performance Sesion
- W oknie
Performance Explorerzaznaczając nową sesję prawym klawiszem myszy wybierzPreferencesi ustaw trybInstrumentationwraz zCollect .NET object allocation information - W pozycji
Targetswybierz (prawy klawisz myszy) aktualny projekt jako cel analizy - Uruchom analizę i zlokalizuj funkcję rezerwującą najwięcej pamięci





