Automatyzuję niektóre zadania profilowania i chcę logować przestrzeń sterty i rozmiary generowania w czasie rzeczywistym. profiling API wydaje się strasznie skomplikowany, jeśli chodzi o to, czego potrzebuję, i wydaje się, że słucha indywidualnych przydziałów i zbiorów, co nie jest dla mnie ważne. Narzędzia profilujące są oczywiście bardzo pomocne, ale szukałem bardziej elastycznego, programowalnego interfejsu.Czy istnieje sposób na odzyskanie bieżącego zużycia pamięci aplikacji C#?
Odpowiedz
Określenie "bieżące użycie pamięci" jest trochę luźno zdefiniowane. Masz na myśli zestaw roboczy? Cokolwiek to oznacza, możesz użyć różnych właściwości, takich jak VirtualMemorySize
, WorkingSet
, PrivateMemorySize
itd. Z klasy procesowej, aby je odzyskać.
long workingSet = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
Istnieją liczniki wydajności dla wielu z tych rzeczy i jeśli nie możesz korzystać z Perfmon, możesz uzyskać dostęp do liczników za pomocą Diagnostycznego interfejsu API.
Raz musiałem znaleźć przeciek pamięci w starszych kod, przyszedłem po drugiej stronie tego rozwiązania: Start „Lista zgłoszeń” z odpowiednimi parametrami jako procesu i czytać albo wyjście ze strumienia lub z pliku.
np.
tasklist /fi "IMAGENAME eq notepad++.exe" /FO CSV /NH
wyjściowa wynosi:
"notepad++.exe","7132","Console","1","21.004 K"
Nie to eleganckie, ale działa w dowolnym języku programowania na Windows bez dodatkowych uzależnień (C++/Qt w moim przypadku).
- 1. Zrozumienie zużycia pamięci na iPhonie
- 2. Czy istnieje sposób na odzyskanie wszystkich rekordów w kwerendzie (ElasticSearch)?
- 3. openssl: zmniejszenie zużycia pamięci
- 4. Pomiar zużycia pamięci strony internetowej
- 5. Czy istnieje sposób sprawdzenia, ile pamięci używa zmienna?
- 6. Ograniczanie zużycia pamięci node.js męska
- 7. Czy istnieje przenośny sposób kopiowania bloku pamięci w języku C#?
- 8. Monitorowanie zużycia pamięci przez różne obiekty Java
- 9. Najszybszy sposób na odzyskanie kodu kontrolowanego z wersji do RStudio
- 10. Czy istnieje sposób na uniknięcie wycieków pamięci w systemie Tomcat?
- 11. Łatwy sposób wydrukowania bieżącego śladu stosu aplikacji?
- 12. Czy istnieje sposób na odzyskanie pozycji Sitecore przy użyciu innego języka niż obecny kontekst?
- 13. Czy istnieje sposób na odzyskanie zestawu lub tablicy kluczy dla danego obiektu NSManagedObject?
- 14. Czy istnieje szybki sposób na odzyskanie dokumentacji funkcji i symboli OpenGL ES w Xcode?
- 15. Czy istnieje inny sposób na odzyskanie domyślnego wzorca dla danego ustawienia narodowego?
- 16. Czy istnieje sposób na uniknięcie tego błędu pamięci?
- 17. Ograniczanie zużycia pamięci tsvncache.exe w TortiseSVN?
- 18. Używanie jednostki pamięci/zużycia funkcji Azure
- 19. Czy istnieje sposób na zlokalizowanie aplikacji na różnych platformach?
- 20. Czy istnieje prosty sposób na uzyskanie rozmiaru obiektu java?
- 21. Czy istnieje statyczny sposób uzyskania HttpServletRequest bieżącego żądania?
- 22. Zmniejszenie zużycia pamięci w mysql na ubuntu @ aws mikro instancji
- 23. Zmniejszenie zużycia pamięci w fazie rozwoju
- 24. Czy istnieje sposób na usunięcie użytkowników do aplikacji Facebook?
- 25. Czy istnieje sposób na wyłączenie panelu środowiska w aplikacji RStudio?
- 26. Czy istnieje sposób na uruchomienie aplikacji angularJS jako komponentu polimerowego?
- 27. Czy istnieje sposób na przejrzenie aplikacji Rails w debugerze?
- 28. Django: Czy jest lepszy sposób na pogrubienie bieżącego łącza strony
- 29. Czy istnieje sposób konkatowania typów anonimowych C#?
- 30. Czy istnieje sposób liczenia tokenów w C?