View page as slide show

Profilowanie kodu w VS2013

  • 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 - 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

  • 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
  • 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

  • Okno Error List zawiera ostrzeżenia i wskazówki dotyczące efektywności aplikacji
  • Performance Rules: błędy, ostrzeżenia, informacje


Żródło: http://msdn.microsoft.com

  1. 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.
  2. 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.
  3. Uruchom profilowanie aplikacji w trybie Instrumentation (ten tryb nie wymaga uprawnień administratora) Analize → Performance and Diagnostics
  4. Przeanalizuj wyniki w celu wykrycia funkcji, których wykonanie zajmuje najwięcej czasu i spróbuj przyśpieszyć ich działanie.
  5. Wyselekcjonuj tylko wybrany fragment przebiegu profilowania (Filter by Selection) i znajdź najdłużej wykonywaną funkcję (Hot Path)
  6. Po wykonaniu poprawek uruchom proces profilowania ponownie.
  7. Porównaj wyniki uzyskane w kolejnych procesach profilowania
  8. Utwórz nową sesję analizy wydajności i skonfiguruj ją w taki sposób aby raport uwzględniał analizę pamięci
    1. Wybierz Analize → Profiler → New Performance Sesion
    2. W oknie Performance Explorer zaznaczając nową sesję prawym klawiszem myszy wybierz Preferences i ustaw tryb Instrumentation wraz z Collect .NET object allocation information
    3. W pozycji Targets wybierz (prawy klawisz myszy) aktualny projekt jako cel analizy
    4. Uruchom analizę i zlokalizuj funkcję rezerwującą najwięcej pamięci