![如何知道我的操作系统使用的页框大小?](https://linux22.com/image/1406974/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%88%91%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%BD%BF%E7%94%A8%E7%9A%84%E9%A1%B5%E6%A1%86%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
如何知道我的操作系统使用的页框大小?
这可能对我编写代码时的一些优化有用。(例如,分配适合页框的大缓冲区)。
页面框架由操作系统决定?我的是 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()
系统调用)。