Разделение кучи для решения фрагментации памяти - PullRequest
0 голосов
/ 18 марта 2012

У меня приложение, интенсивно использующее память, загружающее и выгружающее большие изображения, которые вылетают из-за сбоя выделения памяти.

Я бы хотел попробовать метод разделения кучи, чтобы решить эту проблему.Установите одну область для изображений, а другую для всех остальных, которые, как правило, являются небольшими объектами.

Я обнаружил функции Windows API, такие как HeapAlloc \ HeapCreate, но я не уверен, что это правильный путь.Какой лучший способ справиться с этим?

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Ранее я с успехом использовал HeapAlloc \ HeapCreate, в том числе и для больших объектов (я думаю, что> 20 Мб).Но это было для хранения объектов в отдельных кучах для устранения проблем с памятью.В последних версиях Windows по умолчанию Низкая куча фрагментации .Поэтому я удивлен, что вы получаете ваш фрагмент.Может быть, вы страдаете от этого: LFH отключен ?Какой самый большой размер для одного размещения?

0 голосов
/ 18 марта 2012

Если у вас приложение с интенсивным использованием памяти (выделение огромных кусков памяти), вам, безусловно, следует сначала взглянуть на VirtualAlloc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...