Blog Kokosa

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

NAVIGATION - SEARCH

MemoryVisualizer - zarządzanie

Po części opisującej projekt MemoryVisualizera oraz jego techniczne aspekty, pora na opis metodyki prac, jaką chciałbym zastosować. Aczkolwiek nie będzie to długi opis bo...

MVP, MVP, MVP!

Właściwie główną koncepcją, której chcę się trzymać, to podejście MVP - Minimal Viable Product. Świetnie się sprawdziło ostatnio, gdy z chłopakami tworzyliśmy cfp.help. Jestem głęboko przekonany, że to jedyne słuszne podejście do tworzenia swoich pet projectów. O co chodzi? W skrócie - piszemy jak najmniej, byle działało. Nie brniemy w tygodniowe wybieranie idealnej biblioteki, idealnej architektury, idealnej nazwy i idealnego wszystkiego innego. Piszemy szybko działający prototyp i później go rozwijamy. Daje to bardzo ważną rzecz - statysfakcję. Dość szybko zobaczymy, że "coś mamy". Potem na naszych oczach możemy to "coś" ulepszać, co również motywuje. Więcej...

MemoryVisualizer - szczegóły techniczne

W poprzedniej części opisałem wymagania wobec projektu MemoryVisualizer. Teraz pora przejść do konkretów, czyli technologii. Dla przypomnienia, piszę narzędzie, które pozwoli za pomocą jakiegoś języka zapytań wizualizować pamięć procesu .NETowego - czy to z memory dumpa, czy poprzez podpięty debugger. Wizualizacja ma być ładna - by posłużyć kiedyś do celów ilustracyjnych. Oraz szybka - by docelowo analizować gigabajtowe procesy. 

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