Wie kann ich die Größe des von meinem Betriebssystem verwendeten Seitenrahmens ermitteln?

1106
user17208

Wie kann ich die Größe des von meinem Betriebssystem verwendeten Seitenrahmens ermitteln?

Dies kann für einige Optimierungen beim Codieren hilfreich sein. (Ordnen Sie großen Puffer zu, der beispielsweise in einen Seitenrahmen passt).

Seitenrahmen wird vom Betriebssystem bestimmt? Meines ist Windows 7 (aber es ist unmöglich, Informationen darüber bei Google zu finden. Also kann ich falsch liegen ...)

2

1 Antwort auf die Frage

3
mtak

Wenn Sie nur Windows verwenden, können Sie das folgende C-Snippet verwenden, um die Seitengröße zu ermitteln:

#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; } 

(von: http://en.wikipedia.org/wiki/Page_%28Computer_memory%29#Windows-based_operating_systems )

Unter Linux können Sie die Seitengröße ermitteln, indem Sie den Konfigurationsparameter PAGESIZE vom Kernel abrufen:

mtak@frisbee:~$ getconf PAGESIZE 4096 

(oder Sie können den getpagesize()Systemaufruf verwenden).

Perfekt ! So kann ich es zur Laufzeit finden. Vielen Dank ! user17208 vor 10 Jahren 0