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 List
zawiera 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
test
wybierz projekt zespołowyprojekt2
w którym znajduje się katalogSlownik
zawierają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 Explorer
zaznaczając nową sesję prawym klawiszem myszy wybierzPreferences
i ustaw trybInstrumentation
wraz zCollect .NET object allocation information
- W pozycji
Targets
wybierz (prawy klawisz myszy) aktualny projekt jako cel analizy - Uruchom analizę i zlokalizuj funkcję rezerwującą najwięcej pamięci
Więcej informacji
- Find Application Bottlenecks with Visual Studio Profiler by Hari Pulapaka and Boris Vidolov