Re[2]: STL забирает память и не отдает...
От: Krovosos  
Дата: 03.09.09 22:06
Оценка:
K>>Я могу понять, что STL внутри себя выделяет память. Я не могу понять — почему эта память обратно не вернулась??
Z>уважаемый дон когданить слышал про аллокаторы в stl?

Z>я выкинул из примера все что связано с виндюками и прогнал под valgrind'ом, который в конце концов выдал мне следующее:

[...]
Z>==3963== All heap blocks were freed -- no leaks are possible.

То бишь утечек не было...

Z>дык вот возвращаясь к аллокаторам... рекомендую заглянуть в свою реализацию stl и посмотреть как работает дефолтный аллокатор... -- уверен откроете для себя много нового


Ну я примерно представляю как он работает — он берет по мере надобности большие куски памяти у ОС и устраивает на них хипы. Разве нет?

И после выделения и удаления большого числа объектов память не возвращается системе потому что:
a) она сильно дефрагментирована;
b) никто и не собирался возвращать системе выделенные по хипы блоки памяти.

PS В windows есть вызов _heapmin(), который должен вернуть память хипа системе — не помог.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.