Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to simulate the Out Of memory : Requested array size exceeds VM limit

I used the Out Of Memory help from sun's site. Where it is quoted as

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.

I tried to simulate this by

import java.util.ArrayList;
import java.util.List;

public class JavaTest {
    public static void main(String[] args){
        long[] ll = new long[64*1024*1024];
    }
}

on my machine with

javac *.java;java -Xmx256m JavaTest

But the above line is producing

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at JavaTest.main(JavaTest.java:7)

What am I missing?

Update : My java version is

$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)
like image 406
DKSRathore Avatar asked Dec 10 '09 12:12

DKSRathore


People also ask

How do you simulate out of memory error?

To simulate OutOfMemoryError , we could simply keep adding objects to a Java Collection such as LinkedList in a loop, until the JVM runs out of the heap memory and throws this error. In the example below, the infinite loop will add a new object of size 10MB on each iteration until it runs of memory.


1 Answers

For me

long[] l = new long[Integer.MAX_VALUE];

yields Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit

 

PS: if you need to produce the exception for the purpose of testing, you could also just throw new OutOfMemoryError("Requested array size exceeds VM limit") yourself.

like image 116
akuhn Avatar answered Sep 26 '22 06:09

akuhn