如何知道我的操作系统使用的页框大小?
这可能对我编写代码时的一些优化有用。(例如,分配适合页框的大缓冲区)。
页面框架由操作系统决定?我的是 Windows 7(但在 Google 上找不到有关它的信息。所以,也许我错了……)
答案1
如果您只是使用 Windows,则可以使用以下 C 代码片段来获取页面大小:
#include <stdio.h>
#include <windows.h>
int main(void) {
SYSTEM_INFO si;
GetSystemInfo(&si);
printf("The page size for this system is %u bytes.\n", si.dwPageSize);
return 0;
}
(从:http://en.wikipedia.org/wiki/Page_%28computer_memory%29#Windows-based_operating_systems)
在 Linux 上,您可以通过从内核获取 PAGESIZE 配置参数来找到页面大小:
mtak@frisbee:~$ getconf PAGESIZE
4096
(或者您可以使用getpagesize()
系统调用)。