Ho letto che le applicazioni Windows a 32 bit sono limitate a 2 GB di RAM perché i 2 GB superiori di spazio di indirizzamento sono riservati per il sistema operativo Windows (e, iirc, VRAM). Se si utilizza il flag/3GB su WinXp a 32 bit, è possibile ottenere fino a 3 GB di RAM disponibili per l'indirizzamento, ma in genere è necessario modificare i valori di userva. Ho sentito che su edizioni a 64 bit di Windows, con un grande flag di indirizzamento nell'intestazione PE e oltre 4 GB di RAM, è possibile che un'applicazione utilizzi tutti i 4 GB di spazio di indirizzamento per la propria gestione della memoria.Come funziona il flag Large Address Aware per applicazioni a 32 bit su computer a 64 bit?
D'altra parte, sono abbastanza sicuro che quando chiami l'API di Windows, devi chiamare le posizioni di memoria all'interno dello spazio degli indirizzi a 32 bit che ti viene fornito. Quindi, esattamente quanta RAM può utilizzare un'applicazione di grandi dimensioni per indirizzi sensibili a 32 bit per se stessa in un ambiente a 64 bit? E perché?
Grazie.
Aspetta un attimo, in tal caso, è possibile utilizzare AWE su un sistema operativo Windows XP a 32 bit per sfruttare correttamente 4 GB di RAM anziché la stupidità/3 GB? –
+1 Se si prevede di eseguire in/LARGEADDRESSAWARE, si noti che vari software presentano bug con puntatori a 32 bit> 2 GB. Anche alcune funzioni API MS (sto guardando GetCursorPos su Vista!) Il modo per svuotare questi problemi e aggirarli se è necessario è utilizzare [top down memory allocation] (http://msdn.microsoft .com/ja-jp/isv/bb190527 (l = it-it)) che è abilitato con un'impostazione di registro. –
Sì, ma è necessario mappare esplicitamente le pagine di memoria fisica in uno spazio di indirizzi virtuale. È simile al passaggio dalla banca VESA alla buona vecchia era del DOS. – MSN