Можно ли сжать кучу времени выполнения VC ++? - PullRequest
0 голосов
/ 10 марта 2010

Могу ли я получить такой же эффект, как с HeapCompact() для динамической кучи Visual C ++? Как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 10 марта 2010

Вы можете получить HANDLE для кучи CRT, используя _get_heap_handle, а затем вызвать HeapCompact для него. Не уверен, что это поддерживается / стабильно, так как я сам не пробовал. Я полагаю, что вы захотите вызвать HeapCompact в сериализованном режиме, чтобы иметь какие-либо шансы на эту работу.

Если вы собираетесь столкнуться с этой проблемой, просто вызовите HeapSetInformation для дескриптора (для документов MDSN в _get_heap_handle) и позвольте встроенному LFH обрабатывать сжатие для вас.

2 голосов
/ 10 марта 2010

IIRC не без написания собственного менеджера памяти. Это также нетривиальная часть работы, особенно если вы ожидаете сделать больше, чем просто объединить смежные меньшие пустые блоки памяти в более крупные.

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