Изучение диспетчера памяти - PullRequest
1 голос
/ 26 мая 2010

Хочу изучить несколько менеджеров памяти для нашего продукта - расширение, небольшой распределитель объектов, как в loki, и один менеджер памяти, доступный внутри нашей компании.

Прежде чем выбрать один для нашего продукта, мы хотим изучить все варианты с небольшим прототипом приложения, которые не должны быть похожими на наше приложение с точки зрения функциональности. Моя цель состоит в том, чтобы проанализировать производительность и пиковые значения виртуальной машины для одного и того же количества распределения и удаления объектов различного размера - смежных и несмежных Это должно работать с контейнерами std или библиотеками boost.

Есть идеи, как сделать такой прототип приложения? Наше приложение не MT, но в будущем у нас есть планы на это. Любое предложение будет большой помощью. Было бы здорово иметь так называемую случайность с точки зрения распределения объектов, как в реальном приложении.

Кроме того, было бы полезно предложить какой-нибудь другой менеджер памяти, доступный в открытом доступе. Мы в основном работаем под Linux 32b и 64b.

Ответы [ 2 ]

1 голос
/ 26 мая 2010

Это странный вопрос. Вы должны когда-либо рассматривать пользовательский распределитель памяти, только если пытаетесь решить очень специфическую проблему с той, которая встроена в ваш CRT Что должно предложить немедленный подход к тестированию этого альтернативного распределителя: посмотрите, решит ли он эту проблему.

Если вы делаете это только потому, что это «звучит как хорошая идея», то не надо. Это не так. Тот, что встроен в ЭЛТ, уже сильно оптимизирован.

0 голосов
/ 26 мая 2010

Мы добавили небольшой распределитель объектов на основе повышения в нашу систему менее чем за 2 часа. Это действительно так просто установить, если у вас есть доступ к вашему собственному malloc / новому материалу. Тогда вы можете сравнить с вашим собственным проектом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...