> Steps to use visualvm to profile memory for a standalone JBoss application: > Allow visualvm to use 1024 Mb of RAM - in etc/visualvm.conf update -Xmx parameter to -J-Xmx1024m And this is why I avoid all Java apps I can -- there is always a need for some memory tuning. C++, Lisp, Perl, Go, Python, even Javascript can all use all the memory in my computer have without any action on my part, only Java keeps having the…
Detecting a permgen memory leak in a Java application
11–15 of 15 posts
Re: Detecting a permgen memory leak in a Java application
#12> Steps to use visualvm to profile memory for a standalone JBoss application: > Allow visualvm to use 1024 Mb of RAM - in etc/visualvm.conf update -Xmx parameter to -J-Xmx1024m And this is why I avoid all Java apps I can -- there is always a need for some memory tuning. C++, Lisp, Perl, Go, Python, even Javascript can all use all the memory in my computer have without any action on my part, only Java keeps having the…
Re: Detecting a permgen memory leak in a Java application
#13> Steps to use visualvm to profile memory for a standalone JBoss application: > Allow visualvm to use 1024 Mb of RAM - in etc/visualvm.conf update -Xmx parameter to -J-Xmx1024m And this is why I avoid all Java apps I can -- there is always a need for some memory tuning. C++, Lisp, Perl, Go, Python, even Javascript can all use all the memory in my computer have without any action on my part, only Java keeps having the…
By the way, when using Java 16, not Java 7 like in the article, those parameters aren't needed.
Re: Detecting a permgen memory leak in a Java application
#14> Steps to use visualvm to profile memory for a standalone JBoss application: > Allow visualvm to use 1024 Mb of RAM - in etc/visualvm.conf update -Xmx parameter to -J-Xmx1024m And this is why I avoid all Java apps I can -- there is always a need for some memory tuning. C++, Lisp, Perl, Go, Python, even Javascript can all use all the memory in my computer have without any action on my part, only Java keeps having the…
The default limit is usually 25% of total physical memory. Should the default limit be the maximum? I think it's fine to have the default limit where it's at, to force me to think about what the actual requirements are. When you mean "tuning", do you also mean random GC tweaks? Those are generally best avoided these days, in my opinion. The auto tuning works well enough, and manual settings tend to cause more harm th…
So recent JDKs have a sane default. Finally. Now we have a zillion app from the time defaults were not sane, each having a few -Xm parameters in their config. If they work well enough, nobody takes the effort to remove them. If they don't work, just type a higher number and test.
Manual JVM memory tuning will stay with us forever.
Re: Detecting a permgen memory leak in a Java application
#15Detecting? It's safe to assume that if there's any statics there's a permgen leak.
Mutable collection type static field members that are actually mutated, sure. Thread creation in a static initializer? Yeah, that’s going to be a leak- but what you said was: > It’s safe to assume that if there’s any statics there’s a permgen leak. private static final int INT_PHI = 0x9e3779b9; // this is a useful constant that can be inlined in JIT code output, and not a memory leak.