0xd34df00d 15.01.2012 18:26 Azoth_primary

Походу, сабж пиздец как фрагментирует кучу в ходе работы. Пойду напишу менеджер кучи для объектов одинакового размера, типа сообщений в IM, чтобы аллоцировал сразу блоками на 100-1000 штук.

Recommended by:

@pooq: моча съела говно

and @magog
1. rman 15.01.2012 18:27 Gajim

и оно будет работать на винде?

2. 0xd34df00drman /1 15.01.2012 18:27 Azoth_primary

Почему бы и нет? Это этакий прокси между кодом, делающим new Message и системным менеджером кучи.

3. ulidtko 15.01.2012 18:28 уважением

и почитай вот это ещё http://www.open-std.org/jtc1/sc22/wg21/d...
Там очень не любят std::allocator.

4. analizer 15.01.2012 18:28 mcabber

господа, мы с вами присутствуем при историческом моменте. только что было принято решение таки скатить личкрафты в сраное сегфолтящееся говно, где ему, собственно, и место

5. 0xd34df00danalizer /4 15.01.2012 18:28 Azoth_primary

Обоснуйте.

6. 0xd34df00dulidtko /3 15.01.2012 18:29 Azoth_primary

О, шпашибки.

7. analizer0xd34df00d /5 15.01.2012 18:29 mcabber

написать свой менеджер памяти ≝ зарядить противотанковое ружьё и повесить его на стену.

8. 0xd34df00danalizer /7 15.01.2012 18:30 Azoth_primary

Почему? Если это будет оверлоад для new для конкретного типа, который внутри будет держать статический а-ля дек с чанками по 100*sizeof (object) байт, ну и список свободных двухуровневых индексов?

9. analizer0xd34df00d /8 15.01.2012 18:31 mcabber

ну-ну. уверен что IM сообщение всегда будет у тебя влезать в один и тот же размер?

10. ulidtkoanalizer /9 15.01.2012 18:32 уважением

да у него там строка с телом как-то отдельно хранится поди

11. 0xd34df00danalizer /9 15.01.2012 18:33 Azoth_primary

Да. Потому что все динамичное в рамках IM'а все равно тоже делается на хипе (потроха QString и все такое), и туда кастомный аллокатор уже не засунешь никак.

12. 0xd34df00dulidtko /10 15.01.2012 18:34 Azoth_primary

Шаришь.

13. ulidtko0xd34df00d /11 15.01.2012 18:34 уважением

засунешь-засунешь. Главное захотеть.

14. 0xd34df00dulidtko /13 15.01.2012 18:34 Azoth_primary

Расскажи мне про это.

15. ulidtko0xd34df00d /14 15.01.2012 18:36 уважением

LD_PRELOAD, #define malloc, -stdlib <path>... Залезть во внутренности способов много. Главное — захотеть ;]

16. 0xd34df00dulidtko /15 15.01.2012 18:36 Azoth_primary

Блядь ебговно.

17. borman 15.01.2012 18:39

Если ты найдешь способ диагностировать фрагментацию кучи и поделишься им, то вообще будешь няшей.

18. 0xd34df00dborman /17 15.01.2012 18:39 Azoth_primary

Замеряй среднее время аллокации. При фрагментированной куче оно существенно увеличится, и местами скачком.

19. borman0xd34df00d /18 15.01.2012 18:41

Хм. А куда советуешь вставить щуп? Подменой malloc?

20. 0xd34df00dborman /19 15.01.2012 18:42 Azoth_primary

ХЗ. Вызывай по таймеру, иногда замеряй в ходе обычной работы, я не знаю.

21. borman0xd34df00d /20 15.01.2012 18:45

Кстати, спасибо за идею для практической работы по анализу данных :3 Внедрю такое в вакуум, например, потом порисую няшные графики.

22. 0xd34df00dborman /21 15.01.2012 18:47 Azoth_primary

Лучше бы ты что в личкрафты внедрил :3

23. borman0xd34df00d /22 15.01.2012 18:50

Моя позиция непреклонна — мне как юзеру нахрен не сдались личкрафты, и вообще я не уважаю системы с сильным связыванием компонент.

24. 0xd34df00dborman /23 15.01.2012 18:51 Azoth_primary

Сказал вакуумоюзер.
Где в личкрафтах сильное связывание?
Олсо, гм, а чем тебе сдался вакуум тогда? :3

25. borman0xd34df00d /24 15.01.2012 18:55

Он есть, работает, неплохо работает, но я не собираюсь над ним работать. Мне поначалу нравилась его архитектура, но по факту это адовый овердизайн. Я все мечтаю написать что-то свое и гиковое, но пока процесс не очень-то идет (как освобожусь с сессией, надо будет писать для себя ТЗ).

26. 0xd34df00dborman /25 15.01.2012 18:57 Azoth_primary

Это не адовый овердизайн, это просто какой-то пиздец.

27. generatorglukoff 15.01.2012 20:08

рекомендую начать с мемори пулов для указателей и прочих анальных пимпл игрушек

28. 0xd34df00dgeneratorglukoff /27 15.01.2012 20:10 Azoth_primary

Я не использую пимпл.

29. generatorglukoff0xd34df00d /28 15.01.2012 20:15

Qt использует

Do you really want to delete ?