Если я позвоню:
char *myChar = (char *)malloc(sizeof(char));
Я, скорее всего, буду использовать более 1 байта памяти, потому что malloc, вероятно, будет использовать некоторую память самостоятельно для отслеживания свободных блоков в кучеи это может фактически стоить мне немного памяти, всегда выравнивая распределения по определенным границам.
Мой вопрос : есть ли способ узнать, сколько памяти действительно используется определеннойmalloc
вызов, включая эффективную стоимость выравнивания и накладные расходы, используемые malloc
/ free
?
Просто чтобы прояснить, я не прошу выяснить, какмного памяти, на которую указывает указатель после вызова malloc
.Скорее, я отлаживаю программу, которая использует много памяти, и я хочу знать, какие части кода выделяют, сколько памяти.Я хотел бы иметь возможность учета внутренней памяти, которая очень близко соответствует числам, указанным top.В идеале я хотел бы иметь возможность делать это программно на основе каждого malloc
вызова, а не получать сводку в контрольной точке.