Профилировщик фрагментации памяти

Библиотека YUI могла бы быть тем, что Вы ищете. Это также поддерживает перекрестную доменную загрузку.

при использовании jQuery, , этот плагин делает то же самое.

20
задан Justicle 7 September 2009 в 23:28
поделиться

3 ответа

Я бы начал с mtrace . Когда у вас есть трассировка, glibc поставляется с Perl-скриптом mtrace (1), который находит утечки. Тем не менее, формат трассировки прост для понимания, поэтому его нужно сразу преобразовать в анализ фрагментации.

5
ответ дан 30 November 2019 в 01:31
поделиться

Мне сложно понять, как любой инструмент, который вы можете найти, сможет понять структуры данных сегментов вашего пользовательского управления памятью. Вы могли бы получить загруженный дистрибутив (подключившись к malloc / free), но свободный дистрибутив (который, по сути, является фрагментацией), кажется, витает в воздухе.

Так почему бы не добавить статистику / гистограммы занятости / свободного места в вашу пользовательскую память управляющий делами. Если бункеры индексируются чем-то, пропорциональным log2 (размеру), его O (1) сохраняет эту статистику, так как при разделении и объединении вы знаете размеры и можете найти бункер прямым поиском, используя индекс, пропорциональный log2 (размеру)

например интервалы бина гистограммы

[2 ^ n, 2 ^ (n + 1)) ...

(например, если вы хотите более тонкие ячейки, используйте квадратный корень 2 (размер) которые могут быть вычислены с помощью 4 целочисленных инструкций на x86 [сканирование бит, сравнение, установка, сложение])

другой набор разумных размеров бинов для использования - это следующие открытые интервалы

[2 ^ n, 2 ^ n + 2 ^ (n-1)), [2 ^ n + 2 ^ (n-1), 2 ^ (n + 1))…

снова легко вычислимый [битовое сканирование, сдвиг и сложение])

1
ответ дан 30 November 2019 в 01:31
поделиться

nedmalloc - очень хороший настраиваемый распределитель, поставляется с исходным кодом, оптимизирован для предотвращения фрагментации.

Я бы подключил его и начал смотреть во внутреннем журнале для получения статистики фрагментации.

0
ответ дан 30 November 2019 в 01:31
поделиться