Sto cercando di riprodurre un bug che sembra comparire quando un utente sta usando un mucchio di RAM. Qual è il modo migliore per limitare la RAM disponibile che il computer può utilizzare o riempire la maggior parte di essa? Preferirei farlo senza rimuovere fisicamente la memoria e senza eseguire una serie di programmi arbitrari ad alta intensità di memoria (es. Photoshop, Quake, ecc.).Come limitare la RAM per testare situazioni di memoria insufficiente?
risposta
Utilizzare una macchina virtuale e impostare limiti di risorse su di esso per emulare le condizioni che si desidera.
VMWare è uno dei leader in questo settore e hanno un free vmware player che consente di fare questo.
Utilizzare uno job object o ulimit(1)
.
sto copiando my answer da una domanda simile:
Se si sta testando un'applicazione nativa/non gestito/C++ è possibile utilizzare AppVerifier ed è ambiente di simulazione bassa delle risorse che utilizzerà fault injection per simulare errori di allocazioni di memoria (tra molte altre cose). È anche molto utile per trovare un sacco di altri sottili problemi che spesso causano arresti anomali delle applicazioni.
È anche possibile utilizzare consume.exe, che fa parte di Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1 per utilizzare facilmente molta memoria, spazio su disco, tempo di cpu, file di paging o pool di kernel e vedere come la vostra applicazione gestisce la mancanza di risorse disponibili . (Si blocca? Come vengono influenzate le prestazioni? Ecc.)
Creare una macchina virtuale e impostare la ram su ciò che è necessario.
Quello che uso è Virtual Box di SUN.
E 'facile da configurare.
Se si sta sviluppando in Java, è possibile impostare i limiti di memoria per JVM all'avvio.
+1 per * consume.exe *, non lo sapevo mai. Non penso che lo dirò ai miei tester, potrebbero impazzire e lamentarsi che ciò che scrivo non funziona bene quando c'è solo 16 MB di RAM e la CPU sta diventando mentalmente :) – slugster
Concordato. +1 per lo strumento. –