GNU/Linux >> Znalost Linux >  >> Linux

Jak profilovat využití paměti?

Použijte masiv, který je součástí nástrojů Valgrind. massif-visualizer vám může pomoci graficky zobrazit data, nebo můžete jednoduše použít ms_print příkaz.


Vyzkoušejte profilovač haldy dodávaný s gperftools od společnosti Google. Vždy jsem ho sestavoval ze zdrojů, ale je k dispozici jako předkompilovaný balíček pod několika linuxovými distribucemi.

Použití je stejně jednoduché jako propojení dynamické knihovny s vašimi spustitelnými soubory a spuštění programu. Shromažďuje informace o každé dynamické alokaci paměti (pokud jsem viděl) a ukládá na disk výpis paměti pokaždé, když dojde k jedné z následujících situací:

  • HEAP_PROFILE_ALLOCATION_INTERVAL bajtů byly přiděleny programem (výchozí:1Gb)
  • značka využití velké paměti se zvýší o HEAP_PROFILE_INUSE_INTERVAL bajtů (výchozí:100 Mb)
  • HEAP_PROFILE_TIME_INTERVAL uplynuly sekundy (výchozí:neaktivní)
  • Výslovně voláte HeapProfilerDump() z vašeho kódu

Poslední z nich je podle mých zkušeností nejužitečnější, protože můžete přesně určit, kdy chcete mít snímek využití haldy a poté porovnejte dva různé snímky a uvidíte, co je špatně.

Nakonec existuje několik možných výstupních formátů, jako je textový nebo grafický (ve formě orientovaného grafu):

Pomocí tohoto nástroje jsem byl schopen zjistit nesprávné využití paměti, které jsem nemohl najít pomocí Massif.


Linux
  1. Jak potrubí omezují využití paměti?

  2. Jak zobrazit nejlepší procesy seřazené podle skutečného využití paměti?

  3. Jak zjistit využití uživatelské paměti v linuxu

  1. Využití paměti Linuxu

  2. Jak zkontrolovat využití paměti procesu pomocí příkazu Linux pmap

  3. Jak omezit využití paměti aplikací v linuxu?

  1. Jak zkontrolovat využití paměti na serveru se systémem Linux

  2. Jak zjistit využití CPU

  3. Jak získat % využití paměti pomocí vmstat?