Come conoscere la dimensione della cornice della pagina utilizzata dal mio sistema operativo?


2

Come conoscere la dimensione della cornice della pagina utilizzata dal mio sistema operativo?

Questo potrebbe essere utile per alcune ottimizzazioni quando codice. (Allocare, ad esempio, un buffer di grandi dimensioni che si adatta a una cornice di pagina).

Il frame della pagina è determinato dal sistema operativo? Il mio è Windows 7 (ma impossibile trovare informazioni al riguardo su Google. Quindi, potrei sbagliarmi ...)

Risposte:


3

Se stai solo usando Windows, puoi usare il seguente frammento C per ottenere le dimensioni della pagina:

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

(da: http://it.wikipedia.org/wiki/Page_%28computer_memory%29#Windows-based_operating_systems )

Su Linux puoi trovare la dimensione della pagina ottenendo il parametro di configurazione PAGESIZE dal kernel:

mtak@frisbee:~$ getconf PAGESIZE
4096

(oppure è possibile utilizzare la getpagesize()chiamata di sistema).


Perfetto ! Quindi posso trovarlo in fase di esecuzione. Grazie !
user17208
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.