
I also tried in built NWDS profiler plugin, but I feel it doesn't give all the flexibility that other vendors provide, its good in its own but difficult to locate root cause of memory leak etc.Īny help or suggestion in this regard is highly appreciated. With jProfiler : -agentpath:C:\PROGRA 1\JPROFI1\bin\windows\jprofilerti.dll=port=8849 (CompilerOracle read from file C:\usr\sap\U05\SYS\exe\jvm\NTI386\sapjvm_5.1.037\sapjvm_5\jre\.hotspot_compiler )Įxception assertJNI failed JNIUtils.cpp 55 Example 4: Detecting a Memory Leak during an Endurance Test with EJ JProfiler Let's continue our use of JProfiler and the exploration of the memory of our. For native memory leaks from memory outside JVM managed memory, typically caused by JNI or native libraries, you need to use a 3rd party tool to find the leak. This is throwing error on server start up With yourkit : -agentpath:C:\PROGRA 1\YOURKI1.23\bin\win32\yjpagent.dll=disablestacktelemetry,disableexceptiontelemetry,delay=10000,debugjni

JVM argument I am using at the server starts ups are With jProfiler app server does starts fine and do see log statement on std out for the port entry, but jProfiler is unable to connect to the server running in local host, wondering if any of you ran into such issue. With yourkit I am getting problem at app server start up and I am unable to resolve that. Strictly speaking this is not actually a memory leak as the additional memory use is bounded - memory use does not go up forever.Our application is built on SAP application server and we are observing memory leak, to identify root cause, I was trying to use either jProfiler or yourkit but running into all sorts of problem. The application is creating and disposing a lot of ClassLoaders via OSGi (Apache Felix) with Spring OSGi. Are there any known GC memory leaks caused by ClassLoaders being dropped for instance? according to "the rules" there is no heap root). No known memory analysis tool can find the heap root (i.e. It seriously affects runs of our functional test suite. With the built-in facility in the JVM to automatically save an HPROF snapshot when an OutOfMemoryError is thrown, you can get a snapshot where the memory leak is more important than the regular memory consumption. Profiling such a memory leak until it becomes visible may not be practicable.
JPROFILER MEMORY LEAK FULL
In practice this doesn't hurt a standard JIRA customer as a full system import is generally a one-off operation. Memory leaks can have a very slow rate and may not become dominant for a long time. This happens on all JVMs we have tried so far, which are the 1.5 and 1.6 JVMs on Linux and Mac, and the IBM 1.6 JDK on Linux. There are no JNI Global references either, yet this memory remains uncollectable!

Starting with all strong references and proceeding to remove soft and weak references - even things like clearing the cache - and even Finalizer references until YourKit, Eclipse MAT, JProfiler and jhat profilers all report that the memory in question is dead and should be collectable, but inexplicably the JVM still holds on to it. In the process of diagnosing this we have tracked down and removed every possible reference to a large section of memory (a plugin framework) that we could find.

There is not a one-one correspondence to restarts and leaks however (we generally see about 6 dead plugin systems although 30 or more restarts may have occured). Ideally, the number of instances should be more or less the same. Compare both snapshots (or dumps) with your memory profiler. When in the idle state again, take a second snapshot, or capture a second dump file. Return to the idle state at the end of it. The plugins do not have to have been used for the leak to occur. Run the scenario where you suspect a memory leak occurs. Restarting Plugins2 (in JIRA this happens when doing a full system import) when there are active Plugins2 plugins does not allow all memory previously referenced to be available for GC, most particularly there are a number of ClassLoaders left active with no obvious GC root the classes of whom are themselves roots for a whole graph of circularly referenced garbage. Although there are a lot of profilers available, even popular tools can be.

The Plugins2 system in JIRA4 appears to be leaking heap and permgen when restarting it. When it comes to finding performance bottlenecks, a profiler is your best friend.
