Programmazione.it v6.2
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Chat Forum
Windows e l'efficienza: non solo un problema di RAM (3/4)
Scritto da Massimo Mazza il 30-07-2010 ore 09:35
Intel Software
Esaminando comunque con attenzione il consumo della RAM fisica installata, mi sono accorto che comunque essa non superava i 600 MB. Dopo un po' di tempo di utilizzo del PC, il pagefile veniva utilizzato pressoché integralmente, e iniziavano ad apparire messaggi del tipo "Page file too low - increasing".

In realtà non veniva incrementato il pagefile su disco (che era di dimensione fissa), bensì la quantità di memoria che Windows eventualmente poteva richiedere (commit charge) e che, ovviamente, avrebbe prelevato dalla RAM se necessario. Alla fine, per fare tabula rasa e verificare l'effetto pratico di utilizzare un PC senza pagefile, ho azzerato lo stesso e ho iniziato a osservare il comportamento del PC.

Innanzitutto la quantità di RAM disponibile, a mano a mano che aprivo le applicazioni, diminuiva sempre più, fino ad arrivare a un totale di 1 GB utilizzato. Lo swap su disco era inesistente e la velocità decisamente superiore, in quanto i file utilizzati più di frequente erano memorizzati nella cache di sistema, le cui dimensioni si aggiravano intorno ai 700 MB.

Può comunque capitare che qualche applicativo, durante lo start-up, richieda una quantità esorbitante di RAM, anche se poi non la utilizza ed eventualmente la lascia libera: è un caso più frequente di quanto non si creda, ed è uno dei motivi per cui generalmente si raccomanda di avere sempre un minimo di memoria virtuale allocata su disco.

Se si decide di non usare il pagefile, ma esclusivamente la RAM, l'unico serio inconveniente a cui si può andare incontro è il messaggio di errore "Out of memory". A me per ora, dopo più di una settimana di test non è ancora apparso, ma se vi dovesse capitare ciò significa che siete costretti a creare un minimo di memoria virtuale sul pagefile, perché Windows ha occupato tutta la RAM disponibile: solo le porzioni di dati e programmi effettivamente in uso sono caricati in RAM; le altre parti vengono conservate nel file di swap.

Quando un programma necessita di dati che non risiedono nella RAM, esso genera un interrupt, chiamato Page Fault, che informa il sistema operativo di caricare la pagina di 4 KB corrispondente all'indirizzo di memoria contenente i dati necessari. Un numero eccessivo di Page Faults/sec è un quasi sicuro sintomo che il PC ha poca RAM installata, o che comunque l'applicativo (o gli applicativi), in uso in quel momento, costringono il sistema a ripetuti accessi al disco, rallentando il tutto: questi sono i cosiddetti Valid Page Fault.

Può capitare che per errori dell'hardware o del codice del software che gira in quel momento venga richiesta una pagina di memoria inesistente: è qui allora che si verifica l'errore segnalato come Invalid Page Fault, che spessissimo conduce all'infausta schermata blu (BSOD) e allo stop del sistema.
Precedente: Nuovo approccio alla sicurezza delle password
Successiva: Real time con GNU/Linux embedded
Copyright Programmazione.it™ 1999-2009. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 1.14 secondi. Sito ottimizzato per Mozilla Firefox. Powered by Kyron.