spamsink: (Default)
[personal profile] spamsink


Сегодня провел весь день, копаясь в окаменевшем дерьме индийском коде, тратившем невообразимое количество памяти. Тест, который по идее должен был помещаться в 4 Гб, чуть не поставил раком мою 8 Гб машину (хорошо, я успел сделать ctrl-alt-F1 при первых симптомах, и убить процесс из текстового режима). На 32 Гб машине выяснилось, что процесс хочет 9 Гб с гаком.
Помимо прочего, в коде содержалась конструкция типа
const char * name = obj->getName();
if (obj->isArrayElt()) {
   name = obj->getParent()->getName();
   idx = obj->getIndex();
}

Фишка в том, что это была не протечка, и valgrind, запущенный на весь процесс от начала до конца, не жаловался - строки, возвращаемые из getName(), в конце концов[weasel words] зачищались, но никому не нужных уникальных строк вида "array[index]" это дело порождало , задирая пиковое потребление памяти до небес, столько, что можно было диву даться.

А потом уже одно к одному: оказалось, что хешировать по имени объекта в том месте было вообще необязательно. В результате к концу дня практически вписался в желаемые 4 Гб.

Как говорится

Date: 2011-05-17 05:30 am (UTC)
vak: (Default)
From: [personal profile] vak
Что хешуй, что не хешуй... :)

Date: 2011-05-17 07:04 am (UTC)
From: [identity profile] arno1251.livejournal.com
красиво жить не запретишь...

offff

Date: 2011-05-17 07:15 pm (UTC)
From: [identity profile] sthinks.livejournal.com
А поздравлять-то уже пора? Я ничего не путаю?

Re: offff

Date: 2011-05-17 07:45 pm (UTC)
From: [identity profile] sthinks.livejournal.com
Можно было остановиться после первого пункта. Пулемет настолько производит впечатление, что никакими саксофонами и алькапонеми его не перебьешь.

Поздравляю! Будь здоров!
И поздравь от меня родителей с замечательным сыном.
Page generated Mar. 4th, 2026 11:07 pm
Powered by Dreamwidth Studios