Помимо внешнего осмотра, вы также можете использовать свою реализацию malloc, чтобы позволить вам проверить эту статистику.jemalloc
и tcmalloc
являются реализациями, которые, помимо типичных реализаций libc, обеспечивают лучшую производительность для многопоточного кода, добавляя некоторые служебные функции такого рода.
Чтобы копать глубже, вы должны узнать немного больше о кучераспределение работ.В конечном счете, ОС - это та, которая выделяет память процессам, когда они ее запрашивают, однако запросы к ОС (системные вызовы) выполняются медленнее, чем обычные вызовы, поэтому, как правило, реализация malloc
будет запрашивать большие куски для ОС (4 КБ илиБлоки по 8 КБ являются общими) и подразделяют их для обслуживания их вызывающих абонентов.
Вам необходимо определить, интересует ли вас общий объем памяти, потребляемой процессом (включая сам код), память процессазапрашивается у ОС в рамках конкретного вызова процедуры, память, фактически используемая реализацией malloc
(которая добавляет свои собственные накладные расходы на ведение бухгалтерского учета, пусть и небольшая), или память , которую вы запрашивали .
Кроме того, фрагментация может быть болью для последних двух и может несколько размывать различия между реально используемым и назначенным.