Страницы

Поиск по вопросам

среда, 22 мая 2019 г.

Зачем windows позволяет создавать приватные кучи?

Каждый процесс в ОС Windows имеет по умолчанию свою кучу, размер которой в будущем может быть изменен. Более того, каждый процесс способен так же создавать кучу с определенным, наперед заданным начальным и максимальным размером (такая куча будет называться приватной). Зачем такая возможность существует в Windows? Чтобы оптимизировать реаллокации? Но тогда не достаточно ли в таком случае использования обычной кучи по умолчанию?


Ответ

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

Комментариев нет:

Отправить комментарий