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