dotMemory


Profiler pamięci .NET

dotMemory pomaga zoptymailzować zużycie pamięci w różnych aplikacjach .NET i znaleźć odpowiedź na wiele pytań związanych z zarządzaniem pamięcią.

Cechy dotMemory

dotMemory jest profilerem pamięci .NET, który może być uruchomiony bezpośrednio z Visual Studio, albo jako samodzielne narzędzie.

Obsługa różnych aplikacji .NET

dotMemory pozwala na profilowanie aplikacji opartych o framework .NET (2.0 i nowsze) takich jak aplikacje desktopowe, aplikacje webowe ASP.NET, IIS, IIS Express, usługi Windows, aplikacje Universal Windows Platform, samodzielne procesy .NET i wiele więcej. Począwszy od dotMemory 2016.3 możesz także profilować aplikacje .NET Core.

Obsługa zrzutów pamięci

dotMemory posiada możliwość importu zrzutów pamięci utworzonych na systemie Windows za pomocą Menedżera zadań lub eksploratora procesów, i analizowania ich jako standardowych zbiorów danych dotyczących pamięci. Dzięki temu możesz skorzystać z wielu niezwykle zaawansowanych funkcji dotMemory, jak między innymi automatyczne inspekcje, diagramy pamięci.

Integracja z Visual Studio

dotMemory integruje się w pełni z Visual Studio, dzięki czemu możesz zacząć sesję profilowania bezpośrednio z poziomu IDE kiedy tylko chcesz.

Podczas analizy danych w dotMemory możesz w każdym momencie przejść do deklaracji typu w Visual Studio.

Oś czasu i różne widoki danych

dotMemory pokazuje na osi czasu dane, które są zbierane w czasie rzeczywistym. Monitoruj pamięć zużywaną przez Twoją aplikację, twórz migawki danych i porównuj je między sobą.

Dane na stosie można przeglądać z wielu stron. Chcesz wiedzieć jak obiekty łączą się z sobą? Do których obiektów się odnoszą i przez które pola? Chcesz wiedzieć jakie wywołania stworzyły te obiekty? Nie ma problemu! dotMemory może pokazać Ci wszystko co potrzeba.

Wizualizacja danych to klucz

Zrozumienie, jak w Twojej aplikacji działa pamięć, jest kluczowe w procesie jej optymalizacji. Diagram w postaci promieni słonecznych dokładnie pokazuje hierarchię obiektów.

Szybkie spojrzenie na diagram pozwala na stwierdzenie, które obiekty są kluczowe dla Twojej aplikacji i oszacować największe struktury: im dany obiekt zajmuje więcej pamięci, tym większy kąt na okręgu tworzy.

Aby uzyskać ścieżkę przechowywania danego obiektu wystarczy kliknąć odpowiadający mu łuk. Podwójne kliknięcie na obiekcie powiększy odpowiedni fragment diagramu, co pozwala na dokładniejsze ukazanie przechowywanych przez niego podobiektów.

Automatyczne migawki

Czasami możesz potrzebować wykonywania migawek wyłącznie wtedy, kiedy spełniony jest określony warunek. Dlatego właśnie dotMemory pozwala na automatyzację tworzenia snapshotów. Jest to szczególnie pomocne w wypadkach, gdy zużycie pamięci w Twojej aplikacji drastycznie rośnie, lub kiedy ręczne tworzenie migawek nie jest zbyt proste. Po prostu ustaw odpowiednie warunki, a snapshoty będą zbierane automatycznie po spełnieniu warunków.

Porównywanie snapshotów

Porównywanie dwóch stanów pamięci to główna droga do odnalezienia obiektów, przez które tworzą się wycieki pamięci. Możesz użyć widoku porównania aby zobaczyć, jak wiele obiektów zostało utworzonych pomiędzy nimi, oraz jak wiele zostało usuniętych.

UI wyczerpujące dane, nie użytkownika

Profilowanie pamięci może wydawać się rzeczą dostępną wyłącznie dla profesjonalistów, ale wyjątkowy interfejs użytkownika radykalnie obniża próg wejściowy i upraszcza proces sporządzania profilu. Po prostu poruszasz się od góry do dołu, od grup obiektów po poszczególne instancje, dopóki nie odnajdziesz przyczyny problemów z pamięcią.

Analiza ruchu w pamięci

Nadmierne alokacje lub usuwanie śmieci mogą oznaczać duże koszty zarządzania pamięcią. Użyj podglądu ruchu w pamięci aby szybko zrozumieć, które obiekty wprowadzają najwięcej zamieszania w pamięci.

Potężne automatyczne inspekcje

dotMemory automatycznie skanuje Twój snapshot w poszukiwaniu najbardziej popularnych problemów z pamięcią, takich jak duplikaty łańcuchów, niepełne tablice, problemy z obsługą wydarzeń, czy bindowanie WPF. Te inspekcje mogą być świetnym punktem wyjścia w momencie, kiedy nie wiesz, od czego najlepiej zacząć analizę.

Profilowanie z linii komend

Integralną częścią pakietu dotMemory jest aplikacja dotMemory.exe, czyli profiler pracujący w wierszu poleceń. Możesz wykorzystać to narzędzie do automatyzacji profilowania: włączyć profilowanie do procesu ciągłej integracji, albo po prostu przyśpieszenia rutynowego profilowania (na przykład gdy musisz regularnie profilować jedną aplikację i nie chcesz za każdym razem uruchamiać interfejsu użytkownika).

Profilowanie zdalne

Profiluj aplikacje nie tylko na swojej maszynie lokalnej, ale na dowolnym komputerze w Twojej sieci lub też w internecie. Profilowanie zdalne jest szczególnie przydatne, gdy trzeba sprofilować aplikację webową lub serwer produkcyjny.

A do tego jeszcze własne API

Wybieranie odpowiedniego momentu na snapshot jest niezwykle ważne przy analizie pamięci. Wykorzystaj odpowiednie funkcje API dotMemory aby wykonywać migawki w odpowiednich miejscach w kodzie.