Domanda

È possibile creare un file mappato di memoria per la comunicazione di interprocesso con una garanzia che il contenuto sia sempre mantenuto in RAM e non è stato scaricato nel file di pagina?

Attualmente sto lavorando a un'app OLAP su misura. L'idea principale è quella di avere un processo come una banca di memoria che contiene tutti i dati e più processi di lavoro che effettivamente eseguono il calcolo. Mentre di solito tutto funziona in modo molto regolare, di tanto in tanto c'è un singhiozzo per le prestazioni quando un lavoratore cerca di creare una vista su una parte di un file che non è stato usato per un po ' - da qui la mia domanda.

La quantità di RAM non è un problema (Windows/64 bit): non sappiamo semplicemente se è possibile impedire al sistema di utilizzare un file di pagina.

È stato utile?

Soluzione

Probabilmente stai cercando il VirtualLock funzione.

Blocca la regione specificata dello spazio degli indirizzi virtuali del processo nella memoria fisica, garantendo che il successivo accesso alla regione non subisca un errore di pagina.

Avvertimento lettore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top