Ho utilizzato lo Out Of Memory help from sun's site. Dove viene citato comeCome simulare la memoria esaurita: la dimensione dell'array richiesto supera il limite della VM
Out Of Memory : Requested array size exceeds VM limit
This indicates that the application attempted to allocate an array that is larger than the heap size. For example, if an application tries to allocate an array of 512MB but the maximum heap size is 256MB, then this error will be thrown. In most cases the problem is likely to be either that the heap size is too small or that a bug results in the application attempting to create an array whose size is calculated to be incorrectly huge.
ho cercato di simulare questo
import java.util.ArrayList;
import java.util.List;
public class JavaTest {
public static void main(String[] args){
long[] ll = new long[64*1024*1024];
}
}
sulla mia macchina con
javac *.java;java -Xmx256m JavaTest
Ma la linea di cui sopra sta producendo
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at JavaTest.main(JavaTest.java:7)
Cosa mi sto perdendo?
Aggiornamento: La mia versione java è
$java -version java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03) Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode)
Grazie. Funziona anche per me. Ma perché il mio codice non ha funzionato prima? – DKSRathore
Ok.Quindi il mio sistema produce questa eccezione nell'intervallo 1024 * 1024 * 1024-2 a Integer.MAX_VALUE – DKSRathore
@Adrian, Come faccio a sapere il limite della mia VM? – DKSRathore