обнаружение размера страницы памяти

Существует ли портативный способ обнаружить (программно) размер страницы памяти с помощью C или код C++?

7
задан Franck Freiburger 28 July 2010 в 10:25
поделиться

3 ответа

Поскольку Boost - довольно переносимая библиотека, вы можете использовать функцию mapped_region :: get_page_size () для получения размера страницы памяти.

Что касается стандарта C ++, он не дает такой возможности.

11
ответ дан 6 December 2019 в 07:49
поделиться

Это полностью зависит от платформы, какие диапазоны адресов сопоставлены с какими размерами страниц. Кроме того, размер страницы не является общесистемным. Вы можете выделить память из разных областей размера страницы в соответствии с вариантом использования. И у вас могут быть даже платформы без какого-либо управления виртуальной памятью.

Таким образом, код, обрабатывающий эту тему, должен зависеть от платформы.

1
ответ дан 6 December 2019 в 07:49
поделиться

C ничего не знает о страницах памяти. В системах posix вы можете использовать long pagesize = sysconf (_SC_PAGE_SIZE);

8
ответ дан 6 December 2019 в 07:49
поделиться