0xd34df00d
15.01.2012 18:26 Azoth_primary
Походу, сабж пиздец как фрагментирует кучу в ходе работы. Пойду напишу менеджер кучи для объектов одинакового размера, типа сообщений в IM, чтобы аллоцировал сразу блоками на 100-1000 штук.
и оно будет работать на винде?
Почему бы и нет? Это этакий прокси между кодом, делающим new Message и системным менеджером кучи.
и почитай вот это ещё http://www.open-std.org/jtc1/sc22/wg21/d...
Там очень не любят std::allocator.
господа, мы с вами присутствуем при историческом моменте. только что было принято решение таки скатить личкрафты в сраное сегфолтящееся говно, где ему, собственно, и место
Обоснуйте.
О, шпашибки.
написать свой менеджер памяти ≝ зарядить противотанковое ружьё и повесить его на стену.
Почему? Если это будет оверлоад для new для конкретного типа, который внутри будет держать статический а-ля дек с чанками по 100*sizeof (object) байт, ну и список свободных двухуровневых индексов?
ну-ну. уверен что IM сообщение всегда будет у тебя влезать в один и тот же размер?
да у него там строка с телом как-то отдельно хранится поди
Да. Потому что все динамичное в рамках IM'а все равно тоже делается на хипе (потроха QString и все такое), и туда кастомный аллокатор уже не засунешь никак.
Шаришь.
засунешь-засунешь. Главное захотеть.
Расскажи мне про это.
LD_PRELOAD, #define malloc, -stdlib <path>... Залезть во внутренности способов много. Главное — захотеть ;]
Блядь ебговно.
Если ты найдешь способ диагностировать фрагментацию кучи и поделишься им, то вообще будешь няшей.
Замеряй среднее время аллокации. При фрагментированной куче оно существенно увеличится, и местами скачком.
Хм. А куда советуешь вставить щуп? Подменой malloc?
ХЗ. Вызывай по таймеру, иногда замеряй в ходе обычной работы, я не знаю.
Кстати, спасибо за идею для практической работы по анализу данных :3 Внедрю такое в вакуум, например, потом порисую няшные графики.
Лучше бы ты что в личкрафты внедрил :3
Моя позиция непреклонна — мне как юзеру нахрен не сдались личкрафты, и вообще я не уважаю системы с сильным связыванием компонент.
Сказал вакуумоюзер.
Где в личкрафтах сильное связывание?
Олсо, гм, а чем тебе сдался вакуум тогда? :3
Он есть, работает, неплохо работает, но я не собираюсь над ним работать. Мне поначалу нравилась его архитектура, но по факту это адовый овердизайн. Я все мечтаю написать что-то свое и гиковое, но пока процесс не очень-то идет (как освобожусь с сессией, надо будет писать для себя ТЗ).
Это не адовый овердизайн, это просто какой-то пиздец.
рекомендую начать с мемори пулов для указателей и прочих анальных пимпл игрушек
Я не использую пимпл.
Qt использует