есть какая-то непонятная для меня проблема — выделил память, потом удалил а в диспетчере задач память не удалилась. Может ли менеджер памяти сабжа держать память? если да, то как сделать так чтобы он всегда отдавал то что выделяет.
П.С. выделяю память я при помощи оператора new, удаляю delete.
Здравствуйте, yaser, Вы писали:
Y>есть какая-то непонятная для меня проблема — выделил память, потом удалил а в диспетчере задач память не удалилась. Может ли менеджер памяти сабжа держать память? если да, то как сделать так чтобы он всегда отдавал то что выделяет.
Y>П.С. выделяю память я при помощи оператора new, удаляю delete.
Что бы гарантированно память отдавалась ОС, надо использовать VirtualAlloc()/VirtualFree(). Если будешь их использовать, то обрати внимание на слова page size и allocation granularity.
Здравствуйте, yaser, Вы писали:
Y>есть какая-то непонятная для меня проблема — выделил память, потом удалил а в диспетчере задач память не удалилась. Может ли менеджер памяти сабжа держать память? если да, то как сделать так чтобы он всегда отдавал то что выделяет.
Эта проблема носит многуровневый характер.
Во-первых, win32 куча не сразу отдаёт освобождённую память, а когда ей это кажется удобным и нужным. Но на больших объёмах аллокаций/деаллокаций и на больших блоках (больше 64К, кажется) это всё невилируется
Во-вторых, сам мэнеджер памяти msvcrt тоже химичит и не отдаёт память сразую
В-третьих, это всё сделано для оптимизации работы всех этих механизмов
Опиши поподробнее задачу. Если у тебя приложение иногда выполняет какое-то "тяжёлое" задание и потом остаётся висеть с кучей недовозвращённой памяти, то это можно решить, например так.
Создавать по CreateHeap новую кучу, на ней всё аллокировать, потом освобождать, а потом кучу грохать. Таким образом ты гарантированно всю память вернёшь...
Y>П.С. выделяю память я при помощи оператора new, удаляю delete.
Соотвественно, если ты хочешь использовать альтернативные менеджеры, то тебе, скорее всего, прийдётся эти операторы перекрыть...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском