Blog Kokosa

.NET i okolice, wydajność, architektura i wszystko inne

NAVIGATION - SEARCH

MemoryVisualizer - ClrMd + F#

Projekt MemoryVisualizera toczy się w kilku wątkach, ale jak na razie dość mało poświęciłem jednemu z najważniejszych - analizy pamięci. Planuję bardziej rozbudowany post o tym jak można się do pamięci dobrać i co tak naprawdę siedzi pod spodem. Na razie jednak jako "zajawkę" przedstawię sposób, którym się będę przez dłuższy czas posługiwał. A chodzi o świetną bibliotekę ClrMd, która to jako dostępna na Nuget, oferuje interfejs .NETowy do analizy pamięci. Szukając go w Visual Studio pamiętajmy zaznaczyć opcję "Include prerelease" ponieważ jest to wciąż biblioteka w wersji rozwojowej.

clrmd1

Więcej...

MemoryVisualizer - Memory Query Language

Memory Visualizer wymaga udostępnienia języka zapytań odnośnie obiektów i struktur w pamięci. Jak pisałem w części Cypher, co to jest?! , język ten nazywam MQL - Memory Query Language. W istocie jest to jednak po prostu Cypher, który rozszerzę o elementy kontrolujące sposób wyświetlania.

Aby sobie przypomnieć, co chcę osiągnąć, wróćmy do przykładowego rysunku z opisu projektu:

szkic2

Więcej...

MemoryVisualizer - opis projektu

Siedzę w temacie analizy pamięci w .NET już jakiś czas. Zaczęło się od potrzeby, kilka lat temu - produkcyjne systemy miały jakiś wyciek i trzeba było namierzyć dziada. Złapałem bakcyla. Potem jeszcze wiele razy miałem okazję 'dłubać w dumpach'. Używałem już chyba wszystkich dostępnych na rynku narzędzi, wielokrotnie. Widziałem jak niektóre zmieniały się wraz z kolejnymi wersjami. Choć i tak 80% spraw rozwiązywałem ostatecznie w WinDbg. Narzędzi mamy więc naprawdę dużo i fajnych. Wymieniając choćby .NET Memory Profiler, ANTS Memory Profiler, jetBrains dotMemory. 

Więcej...