Out of memory error in eclipse.why?
Asked Answered
D

7

29

When i create a new project in "Eclipse" IDE.Suddenly it shows an alert message "Out of memory error".I cannot identify the reason. If any one know the reason please tell me.

Donalddonaldson answered 25/7, 2011 at 12:38 Comment(3)
Always? The same kind of project? How big is your workspace? Lots of projects?Firewater
how much ram do you have? You should have at least 4GB of RAM to make Eclipse runs smoothly.Gummous
Having even 400GB of RAM wouldn't help if the heap setting was too small.Firewater
M
23

Try to start eclipse with follow paramenters:

eclipse.exe -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m

Or justify these parameters for your requirements

Marienbad answered 25/7, 2011 at 12:42 Comment(2)
See https://mcmap.net/q/47611/-how-can-i-reduce-eclipse-ganymede-39-s-memory-use for explanation regarding each parameter.Linet
PermSize and MaxPermSize support was removed in Eclipse 8.0.Mulhouse
C
19
  1. Go to your Eclipse setup folder
  2. If you are running Eclipse on Mac OS X then

    Right click on eclipse.app icon

    Click on Show Package Contents

  3. Open eclipse.ini file

  4. Change below parameters

    -Xms512m
    -Xmx3000m (Hoping your developer box has >4GB of memory)
    
  5. Add below parameters

    -XX:PermSize=256m
    -XX:MaxPermSize=512m
    
Cynosure answered 22/3, 2016 at 19:37 Comment(1)
It seems PermSize and MaxPermSize are not supported in later versions (8.0+). Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0Fasta
F
4

The most obvious explanation is that you are truly out of memory. In which case starting Eclipse with a bigger heap should help

 -vmargs -Xmx256M

varying the 256M to see what works for you.

I would not expect to see this problem if you have just a few simple projects. If you are using additional plugins then conceivably the amount of heap you need may need to be increased.

Firewater answered 25/7, 2011 at 12:42 Comment(0)
M
2

Not sure if relevant to your problem, but I just had a similar problem with a Swing project using OpenJDK 7.

After several cycles of starting (the Run button) and closing ('X' / Alt+F4) my application, I got this error in the console:

Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:691)
    at sun.awt.AWTAutoShutdown.activateBlockerThread(AWTAutoShutdown.java:334)
    at sun.awt.AWTAutoShutdown.notifyPeerMapUpdated(AWTAutoShutdown.java:215)
    at sun.awt.AWTAutoShutdown.registerPeer(AWTAutoShutdown.java:348)
    at sun.awt.SunToolkit.targetCreatedPeer(SunToolkit.java:313)
    at sun.awt.X11.XToolkit.createFrame(XToolkit.java:410)
    at java.awt.Frame.addNotify(Frame.java:477)
    at java.awt.Window.show(Window.java:1031)
    at java.awt.Component.show(Component.java:1651)
    at java.awt.Component.setVisible(Component.java:1603)
    at java.awt.Window.setVisible(Window.java:1014)
    at tool.BAT.main(BAT.java:11)

And sometimes, I got another sort of error:

Error occurred during initialization of VM
java.lang.OutOfMemoryError: unable to create new native thread

and then, if I tried to run it once more, Java crashed:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000000000000000, pid=30388, tid=139776854689536
#
# JRE version: 7.0_07-b30
# Java VM: OpenJDK 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/mcmlxxxvi/workspace/bat/hs_err_pid30388.log
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   http://icedtea.classpath.org/bugzilla
#

top revealed the cause of the problem (notice virtual memory usage):

PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
30619 mcmlxxxv  20   0 3271m 390m  45m S   2.0 13.0   0:38.88 java
30667 mcmlxxxv  20   0 2172m  35m  12m S   0.3  1.2   0:01.00 java
30688 mcmlxxxv  20   0 2172m  35m  12m S   0.3  1.2   0:00.96 java
30710 mcmlxxxv  20   0 2172m  35m  12m S   0.0  1.2   0:00.97 java   

These were all instances of my application, which had not been closed. Still not sure why so much virtual memory was allocated per instance - probably there's some option for that. (I have 3GiB of physical memory, by the way).

Here's my main() method:

public static void main(String[] args) {
    JFrame frame = new JFrame();
    //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    frame.setVisible(true);
}

I saw the commented line in a tutorial and specifically disabled it to see what would happen. What happened was that that it defaulted to HIDE_ON_CLOSE, which did not close and dispose of the frame.

Setting setDefaultCloseOperation to EXIT_ON_CLOSE was the solution for me. Interested to see input from more knowledgeable people on this, though.

Magner answered 5/10, 2012 at 23:24 Comment(1)
Not sure why this was downvoted. I had the same problem as OP, having already increased memory in the startup parameters. Discovered numerous java processes open after opening/closing a Swing window, tried this suggestion, and it closes properly now.Ptosis
C
2
  • Open Your eclipse.ini file
  • XXMaxPermSize will be 256m.
  • Change the value to 512m.
  • Restart your eclipse.
  • Now you will not see any memory issues in Eclipse.

In Brief See below:

Before

--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m

After:

--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
Colewort answered 17/4, 2019 at 6:11 Comment(1)
Where is eclipse.ini?Buskus
G
0

For everyone (like me) who ends up at the bottom without fixing it...

My Eclipse ran out of memeory every time I tried to save a specific file.

Eclipse has a bug where it is unable to handle formatting a comment between a method type and a method name, like the code given below. The fix is to move the comment up or down

public String 
  // Never put a comment here, Eclipse will run out of memory
  getName() {
   return "name";
  }
Glomerulonephritis answered 24/1, 2023 at 12:25 Comment(0)
G
-1

You have to use setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

You can see from here

Ghats answered 5/4, 2021 at 9:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.