Гранулярность виртуального размещения и размер страницы - PullRequest
6 голосов
/ 13 января 2009

Каковы типичные значения гранулярности виртуального размещения и размера страницы на платформах Win64? Это будут dwAllocationGranularity и dwPageSize в SYSTEM_INFO.

В системах Win32 это будет 64 КБ и 4 КБ.

Мне нужно знать, потому что я разработал собственный распределитель на основе VirtualAlloc для приложения Win32 и задаюсь вопросом, все ли мои варианты дизайна все еще действительны для Win64. У меня нет доступа к системе Win64.

Заранее спасибо!

1 Ответ

7 голосов
/ 13 января 2009

Это то же самое, 64 КБ и 4 КБ на Vista x64. Не уверен, что если это когда-нибудь не изменится, маленький размер страницы оказывает серьезное давление на кэш TLB, значительно снижая производительность программ, которые выделяют фрагменты размером в несколько гигабайт. Я также видел несколько сообщений о проблемах с невозможностью выделить большие страницы в какой-то непостижимой точке во время выполнения программы. Но пока это просто хрустальный шар.

...