Fixes for the occasional HUGE timing (thanks to Lars Ekman)
After a number of months of beta testing, JIP 1.1 final is now available. Thanks to all the people who submitted feedback during the beta! This release includes the following:
Timelines. This release features an alternative profiler engine that produces a
timeline rather than timings.
JIP now come with a GUI front end called jipViewer that can be used to view
Improved "net time" reporting. The time that a thread spends calling Object.wait,
Thread.sleep, Thread.join or Thread.yeild is not longer counted as part of a
method's net time.... read more
The big changes from beta 3 are:
Created a new ClassLoaderFilter called the GenericClassLoaderFilter. Using it, you can specify which classloaders will be profiled via a property (accept-class-loaders)
Added a profile property called include that allows you to tell the profile which classes and packages to profile.
Added a FAQ to the readme.html
Beta 3 includes the following:
Fixed a problem where caught exceptions were messing up the JIP call stack.
* Added the ability to turn off the top section of the profiler output. This is useful when you only want to see the summary information. This is accomplished by adding:
to the profile properties file.
Baring any major issues, the next release will be release candidate 1.
Beta 2 includes the following new items:
- Improved "net time" reporting. The time that a thread spends calling Object.wait, Thread.sleep, Thread.join, Thread.yeild or synchronized is not longer counted as part of a method's net time.
- The timeline profiler now notes when activity on a thread is suspended due to calls to synchronized, wait, sleep, join and yield (as discussed above). This is shown in the output via W:START and W:END.... read more
1.1 beta 1 is now available for people who would like to test-drive the latest release of JIP. This release includes:
jipViewer: Added this cool tool that allows you to view JIP output via a graphical user interface. Supports all kinds of helpful features to help you analyze your profile.
Timelines: This release features an alternative profiler engine that produces a timeline rather than timings.
Added a new optional property: output-method-signatures. Setting this to yes causes JIP to include the signature of a method, in addition to its name and package, in the output. ... read more
Version 1.0.7 is an important release for JIP. The runtime engine has been refactored and a number of important bug fixes were added thanks to the many users who submitted bugs and asked questions. JIP is now a robust profiling tool that still holds true to it original tenants of being a lightweight, lower overhead profiler that's written entirely in Java. The major features for JIP include:
The option to exclude classes or packages from being profiled.
Interactive profiling -- being able to start and stop the profiler at runtime.
Programatic profiling -- being able to start and stop the profiler inside plain Java code.
Optional XML output -- this makes it easy to grab the raw output and manipulate it directly.
Added a fix for the ConcurentModificationException.
More information is no available when the debug=on flag in the profile.properties is used.
This beta release contains a number of fixes/improvement that are targeted to ensure that the output is as consistent as possible. Also there is a fix for getting a NullPointerException when object allocation tracking is turned on.
Fixed bug causing ConcurrentModificationException as well as preventing "wacky" percentages in the output. Special thanks to Stefano Doni for all of his great help!
1.0.5 fixes a major bug that was introduced in the last version of JIP. The bug was causing programs configured for interactive profiling to crash when the VM started. Thanks to Nascif Abousalh Neto for finding and reporting this!
Minor bug fixes and enhancements
IBM developerWorks has published an article by Andrew Wilcox (the principle developer of JIP -- the Java Interactive Profiler) about building a Java profiler using the Java 5 Agent interface. JIP embodies all of the desirable qualities of a Java profiler, as laid out in the article, in the form of a mature, Open Source product. The article can be found here: http://www-128.ibm.com/developerworks/java/library/j-jip/
Fixed problems profiling applications that use Hibernate.
Fixed a problem when running JIP against classes that had been compiled with AspectJ.
The JIP whitepaper, which had been released with each new version of JIP, is now available as a link off the project home page (http://jiprof.sourceforge.net). It will no longer be a separate download. (Note that both the binary and source distributions of JIP contain this whitepaper in the /doc directory)
JIP finally has a logo. You can see it on the project home page: http://jiprof.sourceforge.net/
Fixed some output issues when using the profiler interactively.
Version 1.0 released! Includes minor fixes and updated documentation.
Minor fixes and enhancements. If no major issues are found in this release, it will become v 1.0 (to be released in the next few weeks)
Version 0.9.3 adds the option to have output to a directory with auto-geneated file names (in addition to being able to specify a particular file name). It also gives you the choice of having text-based or raw XML output (or both). Minor thread safety issues were also addressed. The next release will probably be 1.0 rc 1
Version 0.9.2 adds an API for programmatically interacting with the profiler, an option to track object allocation and an extensible classloader filtering mechanism.