Eclipse/Glassfish running out of memory - eclipse

I'm developing a web app using Eclipse/Glassfish on Windows 7, and I see this error at least a few times a day when deploying a new version of the app:
SEVERE: Exception while preparing the app : PermGen space
SEVERE: java.lang.OutOfMemoryError: PermGen space
When I see it, I have to close Eclipse, use the Windows Task Manager to stop a Java process (which I suspect is Glassfish), and re-start Eclipse. It's a nuisance, and an unwelcome interruption.
Is there anything I can fix/configure that would make this error go away, or at least decrease its frequency? Or is this a memory leak I'm just going to have to live with?

This is a memory leak in Sun / Oracle JVM <= 7 which often occurs when using JPA. Upgrading to Oracle's JVM 8 should solve this.
If you're bound to JVM 7 or lower, you can add the following VM arguments to Glassfish's launch configuration in Eclipse to increase the memory limit (in this example to 1024 MB), which makes the OOMs less regular:
-XX:MaxPermSize=1024M

Related

adoptopenjdk 8 with openj9 + visualvm + jboss eap 7.1 - cpu usage 100%

i am testing out jboss eap 7.1 using adoptopenjdk 8 with openj9 (previously was using hotspot). i used visualvm to monitor it via jmx, and noticed that the reported cpu usage is consistently close to 100% (see attachment). when i used htop on the host, i found that the cpu usage is nowhere that figure. after switching back to hotspot, the reported cpu usage accurately reflects whatever was reported with htop again. however, if i use jconsole + openj9, the reported cpu usage is accurate as well.
does anyone know whether this inaccuracy is commonplace for openj9 + visualvm monitoring? thanks!
I managed to reproduce this with a trivial application (that just prints the time once a second). It appears something is broken in OpenJ9: I created an issue to track fixing it.

JBoss EAP 6.3 Error :: Error occurred during initialization of VM. Could not reserve enough space for object heap

I am using Java 8 (32 bit) on 32 bit windows 7 machine. RAM on machine is 3GB.
Whenever I am trying to start JBoss EAP 6.3 server in Eclipse Luna, it gives me below error,
Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Error occurred during initialization of VM
Could not reserve enough space for 1048576KB object heap
I have commented below code from host.xml file located in "jboss-eap-6.3\domain\configuration" path
<permgen size="256m" max-size="256m"/>
But still gives me same error.
Also I found that, Permanent Generation is removed from Java 8 and it is replaced by Metaspace. How can I make changes for this? How can I overcome this issue?
Jboss EAP 6.3 not support Java 8, so even if you can run it on Java 8 it may be cause of many issues .
https://developer.jboss.org/message/877474?_sscc=t

GWT / Eclipse slow : just unusable (win7 / Juno install)

I have Eclipse Juno + latest GWT (GPE 3.1.2+ SDK 2.5.1).
It's just unusable :
Just hang-up now and then (ten times a day), so I have to kill and restart
At best very slow, meaning waiting minutes before UI response for trivial things
After WEB investigation, i did :
increased JVM resources in eclipse.ini
periodically purge the project folder "gwt-unitCache"
For some reason i also tried GWT on Indigo (as the GWT Designer does not run properly on Juno), but it is the same.
The issues seem to be yet somewhere else.
As there as performance issues posted on Google bug list, I am not too sure where I stand.
So my questions :
Does anyone use Eclipse/GWT with fair performances [on Windows ?
(is the issue related to windows -- which I doubt)]
Can anyone provide a set of configuration instructions which can
lead to a stable config ? -- or explain the traps to avoid ?
Before going to Vaadin I wanted to properly handle GWT, but i am close to drop it. Please help.
I would add RAM. 4 gigs sounds pretty slim for a dev machine. An OS with a few apps running will take up 2 gigs. Start eclipse and that's another gig or 2 easy. Then you start running jetty within eclipse for another gig or 2 and now you're hitting your virtual memory / page file which will slow it down tremendously.
Running firefox doing nothing else then looking at a single tab to test my app is 200MB of RAM. Some of my chrome tabs are 100MB easy. Just figure each browser tab eats 3-5% of your 4 gigs.
I'd say get at least 16GB on a 64bit OS and give eclipse and jetty at least 2 gigs each if not 4 each. A solid state disk (SSD) helps a lot too since compiling does a lot of random reads and writes.
Here's a screenshot of the debug settings with 3 gigs of RAM and some extra permgen space for subsequent refreshes of the pages. Just remember, if you run out of physical RAM and it starts hitting the page file these settings won't increase performance!

Eclipse is getting Hang while debugging GWT application

We are developing our web application using JAVA GWT-P framework (Version 2.4). We are using Eclipse (Version 3.7) Indigo as a development GUI. While we are debugging the application, eclipse is getting hanged generally and surprisingly this is a random behavior.
And this is not happening in only part of the program. Anytime, while we debug, Eclipse hangs in different module.
To resolve this , we tried to use different Operating system such as Windows XP (development gui: Eclipse version 3.7 Indigo), Fedora Version 16 (with development gui: Eclipse version Helios Service Release 2), Cent OS (with development gui: Eclipse version Helios Service Release 2). But no luck.
Can anyone help me out to decide which OS, and eclipse or version should we have to use so can able to resolve the hanging issue?
Use a machine with at least 8G RAM, quad core for GWT development. Anything less than that would be catastrophic and unproductive.
Ideally 8 core, 12 GB.
Increase your eclipse jvm vm heap size max, at startup.
Default eclipse startup is either 256M or 512M. It should be at least 768M. I have tried 1024M which
made only a marginal difference above 768M. I found 900M seems to be
the most that would be used in my cases.
You may have to increase your permgen memory allocation too. I think
permgen space is used for storing class definition and are never
garbage-collected. I presume that when my eclipse hung indefinitely
was when there was no more permgen space to store new class defn.
I have never had to redefine the stackspace allocation for eclipse.
You can google around to find out the jvm startup arguments to define mem allocation. e.g. -Xmx, etc.
Initially develop only for a single browser. Decide between using FF
or Chrome as your dev browser. Then tune your entrypoint gwt.xml to
set the user-agent property for that browser. Google on gwt set
property user-agent. Compiling for only one browser, I have found,
speeds up the compilation a lot.
Don't ever store your projects, source files, resources or libs
that are accessed by the compiler, in a network or usb drive. All your
compilable/includable resources should be on your local drive.
Try to use maven or some other tool for dependency management, so that you do not need to access your jars or dependent projects over the network.
Do not, ever, let your development strategy roll down the hill by
depending on live-project dependencies. Having workspace with 50 or more
projects is disaster and signifies a development team in crisis.
The compulsive and persistent compilation, scanning of projects by
eclipse background take a huge toll on the performance of eclipse.
Try to disable as much validation as possible. e.g., disable html and
javascript validation.
If you have a huge number of server side projects ...
You need to re-architect your development strategy to cluster your 50 - 100 projects into project packages, so that each project package has no more than 20 compilable/validateable project members (ideally less than 5 projects). Each package is frozen by versions and packaged as jars. Use only the jars for development dependencies.
Your programmers need to learn not to have the impulse to work on a workspace with 200 projects. Enhancements are reserved for bugzillas of each project package. Having a 200 project workspace is bad project management. It wastes your programmers' time by having eclipse slow down now and then.
Have sufficient temp space (or for Windows sufficient slack space on
the user disk). I have experienced that insufficient disk space for
compiler buffering/caching has caused slow-downs and hang-ups. Having
a 5G slack space is the minimal - the more the merrier so as to
preclude having to clear the trash or search for files to delete or
clear the GWT compiler generated temp files. A 5G slack space is still
very inconvenient.
AFAI have experienced, neither windows 7/vista or linux made much performance difference except that eclipse seems to start up much slower on Windows.
Therefore, if you know how to tune your anti-virus, may be you should
tell the anti-virus software to skip scanning the workspace and project folders.
Unless you have an 8-core 12GB machine, you should disable most of windows
aero, trasparency. But you need to keep windows compositing
(otherwise you would destroy your eyesight looking at the bad fonts).
THE PROBLEM
I have a GWT project that worked fine on my old core2 machine. When I recently got a new core i7, 8GB ram (Dell XPS Ubuntu developer edition), I discovered that Eclipse hangs VERY OFTEN (about 90% of the startups hang) when I try to start debugging by clicking the browser link under the "Development Mode" eclipse view. There MUST be a thread synchronization bug (deadlock) that can only happen when the 'timing is different' from normal test cases. This fact that it's a timing bug deadlock is why it appears so "random" and has not yet been discovered and fixed. I have all the LATEST GWT at the time I'm writing this, and latest Eclipse etc.
THE WORKAROUND:
Luckily I discovered that if I copy that link and paste it into an already started instance of Firefox (outside eclipse) then there is never any hang. I'm 100% certain that this is not a problem in my code. I'm 95% certain it's a deadlock happening in GWT. So just don't click the "Development Mode" link and you'll be fine. Hope to have helped someone with this post.

How to set up Eclipse to run with as much RAM as possible? [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
Is there a maximum number you can set Xmx to when trying to increase jvm memory?
On my x64 Windows with 8GB physical RAM I'd like to increase performance of my Flash Builder (an IDE built on top of Eclipse). This is usually done by adding something like this to eclipse.ini:
-Xmx1024m
I'd like to use something like 4096 as my machine has enough RAM but when I do so, the Eclipse won't start with this error message:
JVM terminated. Exit code=-1
Do I need to set up some other startup options? Is Eclipse capable of running with that much memory?
Are you running the 32bit Sun (Oracle) JVM? If so, then you cannot set xmx above 2GB.