dotTrace


Profiler wydajności .NET

dotTrace jest profilerem wydajności aplikacji .NET, to znaczy narzędziem, które pozwala sprawdzić, co powoduje, że dana aplikacja działa wolniej niż się oczekuje. Znacznie ułatwia lokalizację wszelkich wąskich gardeł wydajności dzięki bogatemu interfejsowi użytkownika i solidnemu przetwarzaniu wielkich projektów.

Cechy dotTrace

dotTrace pracuje bezpośrednio w Visual Studio jako jego rozszerzenie i zapewnia wszelkie potrzebne narzędzia do badania wydajności aplikacji.

Profiluj wszystkie typy aplikacji .NET

dotTrace pomaga w znalezieniu wszystkich problemów z wydajnością w różnorakich aplikacjach .NET, włączając w to aplikacje desktopowe, .NET Core, aplikacje ASP.NET hostowane na serwerach IIS oraz IIS Express, Silverlight, usługi WCF i Windows, aplikacje Universal Windows Platform i testy jednostkowe.

Pełna integracja z Visual Studio

dotTrace jest całkowicie zintegrowany z Visual Studio, pozwalając na profilowanie tworzonych aplikacji bez opuszczania IDE i przełączania się na zewnętrzne narzędzia. Co więcej, możesz oglądać wyniki i je analizować bezpośrednio w Visual Studio, oraz przechodzić bezpośrednio od wyników do odpowiadających im fragmentów kodu.

Tryby profilowania i oś czasu

W odróżnieniu od "klasycznego" profilowania, który wyłącznie pozwala na mierzenie czasu wykonywania metod, profilowanie za pomocą osi czasu pokazuje, jak wywołania są rozłożone w czasie.

Dzięki wpleceniu danych o wywołaniach funkcji w oś czasu możliwe staje się wykrywanie problemów, gdzie liczy się kolejność wywołań, jak na przykład zawieszenia interfejsu użytkownika, nadmiarowe usuwanie śmieci, nierówne rozłożenie obciążenia, lub niewydajna obsługa plików.

Tradycyjne tryby profilowania są mimo wszystko dostępne w dotTrace. Próbkowanie to najłatwiejsza metoda zbadania ogólnej wydajności aplikacji, podczas gdy profilowanie linia-po-linii są idealne do zbadania szczegółów pracy konkretnego algorytmu.

Profilowanie metod statycznych

dotTrace pozwala na błyskawiczne sprofilowanie dowolnej metody statycznej w Twoim kodzie. Po prostu umieść kursor na metodzie, wciśnij Alt+Enter i wybierz opcję profilowania z listy działań.

Dzięki tej funkcji możesz profilować dowolną część kodu od razu po jej napisaniu! Nie ma potrzeby budowania całego projektu aby uruchomić go w profilerze, symulować użytkowanie, itd.

Profilowanie aplikacji zdalnych

Przez większość czasu profiluje się aplikacje lokalne, ale co jeżeli musisz przebadać źle działającą aplikację na serwerze zdalnym?

dotTrace potrafi połączyć się z maszyną zdalną aby sprofilować aplikację samodzielne i webowe, czy też usługi systemu Windows. Nie musisz instalować dotTrace na maszynie docelowej: wystarczy przekopiować kilka plików.

Łączenie z uruchomionymi aplikacjami

dotTrace może zostać podpięty do działającej aplikacji aby ją sprofilować, i odłączony jak tylko zostały zebrane wszystkie potrzebne dane.

Takie rozwiązanie zmniejsza koszty pośrednie uruchamiania danej aplikacji pod profilerem. Co więcej, pozwala to na analizę aplikacji w środowisku produkcyjnym, gdzie nie można sobie pozwolić na restart aplikacji za każdym razem, kiedy potrzeba jej sprofilowania.

Testy jednostkowe

Jeżeli masz zainstalowane narzędzie ReSharper w Visual Studio, możesz łatwo profilować testy jednostkowe z poziomu edytora kodu lub narzędzia do wykonywania testów jednostkowych zawartym w ReSharper.

Nawet jeżeli nie posiadasz wspomnianego wyżej narzędzia, dalej możesz profilować natywne narzędzia zapewniane przez NUnit, MSTest czy xUnit.

Porównywanie osiągów

dotTrace potrafi porównać dwa dowolne zbiory danych uzyskane w wyniku profilowania jednej aplikacji. Tworzy to zbiór porównawczy, który ukazuje różnice w ilości wywołań i czasie pochłoniętym przez każdą z funkcji. Porównania mogą być przeglądane i analizowane tak, jak każdy inny zbiór danych profilera.

SDK profilowania

SDK dotTrace pozwala na kotrolę sesji profilowania bezpośrednio z Twojego kodu: za pomocą odpowiednich bloków możesz rozpoczynać i przerywać zbieranie danych, sapisywanie otrzymanych zbiorów, i tak dalej.

Z tej funkcjonalności wynikają dwie niezwykłe zalety. Po pierwsze możesz wykorzystać SDK do zawężenia obszaru działań profilera i wyboru odpowiednich elementów kodu do sprofilowania. Po drugie, możesz tworzyć samoprofilujące się aplikacje, dzięki którym możesz zbierać dane pokazujące, jak zachowuje się Twoja aplikacja na maszynach użytkowników końcowych.

Żądania HTTP i zapytania SQL

Przy analizie danych na osi czasu możesz przefiltrować odcinki, gdzie Twoja aplikacja obsługuje nadchodzące żądania HTTP, natomiast filtr zapytań SQL pokazuje wszystkie zapytania i połączenia SQL razem ze statystykami ich wydajności.

Dla Twojej wygody zawartość zapytań może być otwarta w oddzielnym oknie celem dalszej analizy. Koniec z nieefektywnymi zapytaniami SQL!

Szacowanie zysków

Czasami, po wielu godzinach optymalizacji pewnej funkcji, developerzy muszą zacząć profilowanie od nowa aby zobaczyć, czy ich optymalizacja w ogóle zadziałała.

Nie jest to problemem z dotTrace. Profiler potrafi ponownie przeliczyć czasy wszystkich funkcji na podstawie podanego współczynnika - bez reprofilowania całej aplikacji. To jakby zapytać profiler "a co by się stało, jakby usprawnić tę funkcję o 40%?" Po prostu określ nowy czas wykonywania dla funkcji lub wszystkich metod w klasie. Wszystkie zebrane wartości czasowe zostaną automatycznie przeliczone.

Nowe doświadczenie profilowania

Możesz dowolnie przebierać w danych wykorzystując filtry, drzewo wywołań, lub diagramy. Poprzez stosowanie filtrów możesz uzyskać zestaw interwałów, które spełniają określone wymogi. Działa to podobnie do wysyłania zapytania do bazy danych, aby uzyskać dokładnie te dane, które są potrzebne.

Na przykład, aby sprawdzić, czy zawieszony interfejs jest wynikiem blokowania przez usuwanie z pamięci śmieci, możesz wybrać, aby dotTrace pokazywał wszystkie interwały w głównym wątku, gdzie występowało zawieszenie, i jednocześnie działało usuwanie śmieci. Jakkolwiek może brzmieć to skomplikowanie, opisana kombinacja filtrów może być włączona dzięki dwóm kliknięciom.