The corresponding JVM option -XX:+HeapDumpOnOutOfMemoryError is supported not only in Java 6, but also in Sun Java 1.4.2_12 and newer and in Sun Java 5 update 7 and newer. Unfortunately, only in Java 6 it is accessible programmaticaly. The only way to enable it in pre-Java 6 JVM is to explicitly specify -XX:+HeapDumpOnOutOfMemoryError in the command line of profiled application.See the full list of changes at YourKit
News: YourKit Java Profiler 6.o Released
YourKit LCC has announced the immediate availability of YourKit Java Profiler 6.0. The new version contains many new features and improvements in all areas of performance management. New features include: - High-level J2EE profiling (SQL, JSP, Servlets,JNDI) - Runtime filters to control overhead of CPU profiling - Sorting by retained size in "Class List" - New innovative "Merged paths" view for memory profiling - Greatly improved object allocation recording - Automatically memory snapshots on OutOfMemoryError - UI usability improvements - Java 6 support - Automatic deadlock detection and ability to get current stack traces in telemetry - New and improved J2EE server support An extensive list of improvements has been made to it's already strong memory profiling capabilities. A number of the improvements are related to lowering the impedance that profiling has traditionally placed on application. Other improvements include strong integration with Java 6 features such as attach on demand and programtic access to profiling features.
- Posted by: YourKit Team
- Posted on: January 22 2007 12:51 EST
- Very nice for leak detection by Taras Tielkes on January 23 2007 16:03 EST
- Very intuitive tool by Michael Zamir on January 25 2007 07:24 EST
- Possible improvements by Konstantin Solomatov on January 26 2007 07:02 EST
- Re: Possible improvements by Maxim Shafirov on January 26 2007 13:43 EST
- Re: YourKit Java Profiler 6.0 Released by Peter Lawrey on January 27 2007 09:03 EST
The "find path from GC roots" is a huge timesaver when diagnosing reference leaks.
I've downloaded the evaluation. It was amazing. In less than 1/2 hour, I was able to run my complicated application (lot of classpath dependencies) and I found the first clues to my memory leak. I used OptimizedIt in the past, which is really not user-friendly. In comparison, YourKit Java Profiler is light, fast, doesnt require too many CPU/memory, and gives to the user insight of his code very quickly. The integration with my IDE (Eclipse) was very smooth and I could very easily run 'as usual' my application and then, attach the YourKit profiler to it. I just hope my company will be ready to pay the license ! :)
YourKit significantly improved since first time I tried using it, but I have some problems with using it. If I try capturing snapshot of an application which had consumed more than about 200m of memory, YourKit dies. Everything in UI is very slow: class lists, class tree, retained memory. I think it's possible to cache it somehow and make user experience better. It's not a good idea to buy a profiler that works very slow. The other problem is usability. It's very nice that it's possible to view GC roots like in other profilers, but if you has a lot of similar objects this feature makes no sense, and I have to use tricks to detect them, instead of profiler. Often I want to find not only object of some class, but object on which some condition is satisfied, for example whose field abc has value "cde". There is another problem which often happens when you have a lot of object with the same class, YourKit has a limitation of 500 roots, but sometimes all these paths are consumed by only one object that is referenced in a lot of placed. Would nice to have an option to specify how many roots I want to see in UI.
If I try capturing snapshot of an application which had consumed more than about 200m of memory, YourKit dies.Valid. I'm not sure though it is feasible at all to perform these kind of analyses still under graphs with ~10 millions of nodes yet keep acceptable performance from the user point of view.
Often I want to find not only object of some class, but object on which some condition is satisfied, for example whose field abc has value "cde".Settings|Set of objects, then Memory|Predefined sets
YourKit has a limitation of 500 rootsWhich version you're using? I easily browse ~150000 objects of the same type or any other given criteria in YK 6.0.x
Max, this is not true. It's OK to perform analysis of heaps much bigger, than 200m. Furthermore, as far as I know, there's no profiler that is capable to handle big memory snapshots better than YourKit. If you have any particular problems, couldn't you please report them via regular support channels.
If I try capturing snapshot of an application which had consumed more than about 200m of memory, YourKit dies.
Valid. I'm not sure though it is feasible at all to perform these kind of analyses still under graphs with ~10 millions of nodes yet keep acceptable performance from the user point of view.
Ok. I will use your support forum for feedback.
Any tutorials from this release? -------------
Any tutorials from this release? ------------ strongst phentermine
I use 6.0. When I use path from GC roots action, it maximum 500 shortest paths.
I have used OptimiseIt, JProbe and JProfile and I found YourKit the simplest to use and it allowed me to find what I needed to know very quickly. Now I use it with each major software release to ensure all the unit tests run cleanly.