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łowy projekt2 w którym znajduje się katalog Slownik 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 wybierz Preferences i ustaw tryb Instrumentation wraz z Collect .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

Beginners Guide to Performance Profiling

Analyzing Application Performance by Using Profiling Tools

Find Application Bottlenecks with Visual Studio Profiler by Hari Pulapaka and Boris Vidolov