#winapi #memory #memory_management
Каждый процесс в ОС Windows имеет по умолчанию свою кучу, размер которой в будущем может быть изменен. Более того, каждый процесс способен так же создавать кучу с определенным, наперед заданным начальным и максимальным размером (такая куча будет называться приватной). Зачем такая возможность существует в Windows? Чтобы оптимизировать реаллокации? Но тогда не достаточно ли в таком случае использования обычной кучи по умолчанию?
Ответы
Ответ 1
При создании кучи можно задавать наличие следующих параметров: HEAP_CREATE_ENABLE_EXECUTE — разместить кучу на страницах с правом на исполнение. Подобное можно использовать для JIT-компиляции небольших фрагментов кода, когда выделение целой 4КБ страницы на фрагмент было бы излишним. HEAP_GENERATE_EXCEPTIONS — выбрасывать SEH-исключения из функций управления кучей. HEAP_NO_SERIALIZE — разменять поддержку многоточности на скорость выделения/высвобождения блоков кучи. В куче по умолчанию ничего из вышеперечисленного не включено.
Комментариев нет:
Отправить комментарий