Библиотека YUI могла бы быть тем, что Вы ищете. Это также поддерживает перекрестную доменную загрузку.
при использовании jQuery, , этот плагин делает то же самое.
Я бы начал с mtrace . Когда у вас есть трассировка, glibc поставляется с Perl-скриптом mtrace (1), который находит утечки. Тем не менее, формат трассировки прост для понимания, поэтому его нужно сразу преобразовать в анализ фрагментации.
Мне сложно понять, как любой инструмент, который вы можете найти, сможет понять структуры данных сегментов вашего пользовательского управления памятью. Вы могли бы получить загруженный дистрибутив (подключившись к 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))…
снова легко вычислимый [битовое сканирование, сдвиг и сложение])
nedmalloc - очень хороший настраиваемый распределитель, поставляется с исходным кодом, оптимизирован для предотвращения фрагментации.
Я бы подключил его и начал смотреть во внутреннем журнале для получения статистики фрагментации.