2010-02-18 9 views
6

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

10

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.

10

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.)

+0

+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

+0

Concordato. +1 per lo strumento. –

1

Creare una macchina virtuale e impostare la ram su ciò che è necessario.

Quello che uso è Virtual Box di SUN.

http://www.virtualbox.org/

E 'facile da configurare.

0

Se si sta sviluppando in Java, è possibile impostare i limiti di memoria per JVM all'avvio.