- 1
for(;;){new int;}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−3
for(;;){new int;}
(В конце концов адресное пространство кончится и в любом случае исключение вылетит)
ЗЫ я по тупости к слову ГК скомпилил и запустил... я не просто так проблему производительности фиксил. я эту проблему видел: оригинальному коду нужно секунд 5 что бы 8ГБ памяти съесть. поэтому и фикс.
А в винде ты даже конца свопа можешь не дождаться из-за диких тормозов.
к слову. а вы когда-нибудь задумывались об организационных издержках динамического управления памяти? (ну это так, толстый намек.)
А вот если все эти инты реально юзать...
Если указатель внутри small_kucha, рассчитать номер блока и поставить флажок. Иначе - munmap. Правда, для unmap нужно хранить длину.
лень думать.
> Правда, для unmap нужно хранить длину.
на линухе можно просто грепнуть мапы процесса что бы найти сколько памяти было мапнуто. между блоками как правило есть немапнутые странички как разграничители.
Это так по-царски!
Прямо через system("grep ...")?
Писал. На паттерне из топика он бы трогал только свежие странички. Тут же удалений никаких нету, дырок нету, оббегать нечего.
А если он ещё и читает ГК, то завтра ты ощутишь это на своей жопе...