Change Log

 

Release 8.1   |    2014-09-26

Explore What's New

New features:

  • Heap walker: Much larger snapshots can be opened, and no -Xmx tuning is required anymore
  • Heap walker: Opening snapshots is much faster, especially for large snapshots
  • Heap walker: HPROF is offered as a minimum-overhead alternative
  • Added the command line executable "jpdump" for easily extracting HPROF snapshots from arbitrary Java processes
  • Snapshots can now be deobfuscated, with support for ProGuard and yGuard
  • Dynamic legend for all views that show a tree, explaining all icons, abbreviations and special terms
  • Support for profiling on Linux ARM hard float
  • MongoDB probe: Support for current versions of the MongoDB Java driver
  • Cassandra probe: Support for Apache Cassandra 2.x
  • Support for NetBeans 8
  • Support for eclipse 4.4
  • Native file choosers and alerts on Windows and Mac OS X
  • For CSV exports, the separator is now configurable
  • Redesigned and more useful quick-start dialog
  • Attach functionality has been moved to the start center
  • Added command line export for the method statistics view
  • Added view filter information to HTML exports
  • Added starting and stopping of probe recording to the jpcontroller command line executable
  • Temporary directory selection is now more flexible: "jprofiler.tmpdir" VM parameter, "JPROFILER_TMPDIR" environment variable, and "java.io.tmpdir" VM parameter are used in that sequence for the profiling agent and the GUI
  • You can now add both the "nowait" and the "config/id" options to the -agentpath VM parameter without a license key in the referenced config.xml file
  • The bytecode viewer is now Java 8 compatible

Bugs fixed:

  • Mac OS X: Mouse wheel scrolling did not work on tables
  • Mac OS X: There were no cell expansion tool tips for tables
  • Mac OS X: Window menu was always empty
  • Mac OS X: You can now also select a JRE by selecting the directory that contains the "Contents/Home" directory
  • Mac OS X: Fixed many UI glitches
  • Large heap dumps from offline snapshots were not loaded
  • Heap walker: The "Calculate estimated retained sizes" link in the classes view was visible even if retained sizes were not calculated for the heap dump
  • Heap walker: The current view could be changed while data was loading, leading to a race condition
  • Heap walker: The outgoing references view did not show primitive fields for objects without reference fields
  • Heap walker: Outgoing array references were unsorted
  • The GUI from the "Demo server" sample session did not work on Mac OS X with Java 7+
  • For request tracking across different VMs, the execution site chooser dialog was not brought to the front
  • Relative files in the configured session class path were not correctly resolved for class and method selectors
  • Support for Java language levels 1.7 and 1.8 in the code snippet editor
  • Regression: Thread start tracking was partially broken in 8.0
  • Fixed race condition in command line export
  • HTML export did not correctly export plus-minus signs, as well as the call site and execution site icons
  • HTML export for the method statistics view was missing the thread status information
  • If a socket cannot be bound by the profiling agent, don't exit or crash, but continue without a connection
  • Attach functionality did not work if the system property java.io.tmpdir was set for the JProfiler GUI
 

Release 8.0.7   |    2014-06-07

Bugs fixed:

  • Attaching to a Java 8 JVM could crash the profiled process
  • Heap Walker: The UI could hang in the cumulated incoming references for some hash map and linked list content
 

Release 8.0.6   |    2014-05-20

New features:

  • Profiling platform: Added a version of ConnectionFactory#createRemoteConnection that makes it possible to connect to an unconfigured profiling agent
  • Profiling platform: Added Connection#recordPayload to start probe recording

Bugs fixed:

  • Regression in 8.0.2: JProfiler could no longer install the helper service for attaching to Windows services
  • The balloon tool tip in the status bar was sometimes not cleared
  • The view settings in the thread monitor view were not used for the command line export
  • Thread monitor view: The "End time" column was shown twice when dead threads were displayed
  • Fixed a crash when using the quick-attach functionality on Solaris SPARC with 64-bit JVMs
  • Profiling platform: Waiting and blocking states were not recorded correctly when using the profiling platform API with instrumentation
 

Release 8.0.5   |    2014-02-19

Bugs fixed:

  • Regression in 8.0: Some classes could be missing in a live heap dump
  • When the session configuration had a very large class path, snapshots could not be saved from the GUI
  • "Stop recordings" action could be enabled in snapshots
  • Mac OS X: IDE integrations always opened JProfiler with Java 6
  • Using multiple trigger actions of the same type for the same trigger caused display problems in the configuration UI
  • When loading a snapshot, data in probe views that was already viewed in live mode was not loaded again
 

Release 8.0.4   |    2014-01-31

Bugs fixed:

  • Fixed a java.lang.NoSuchMethodError when using OpenJDK for the JProfiler GUI
  • Netbeans IDE integration: The initial folder chooser for selecting the installed Netbeans 7+ version opened in an incorrect location
  • Using a session of type "Select from local JVMs" for offline profiling caused some views to be disabled
 

Release 8.0.3   |    2014-01-13

New features:

  • Bundled integration for IntelliJ IDEA 13 (the newest IDEA plugin is always available in time from the IDEA plugin manager)

Bugs fixed:

  • Fixed problems when reading incorrect stack map tables generated by external byte code modifications
 

Release 8.0.2   |    2013-12-02

New features:

  • If the system property "jprofiler.displayName" is set the the profiled JVM, it is used in the list of locally detected JVMs

Bugs fixed:

  • Reduced overhead of sampling with URL splitting enabled
  • Numbers in CSV export of telemetry views had grouping separators
  • Object sizes in PHD snapshots could be wrong
  • Fixed exceptions when opening certain PHD snapshots
  • "Save HPROF snapshot" action did not work with OpenJDK
  • IDE integrations: When overhead hotspots were confirmed after the session was disconnected, they were not saved for subsequent runs of the same run configuration
 

Release 8.0.1   |    2013-07-31

Bugs fixed:

  • Fixed java.lang.NoSuchMethodErrors for the JDBC and Socket probes
  • Fixed NPE when opening certain 32-bit PHD files
  • Better handling of out of memory errors when opening huge heap snapshots
  • VM id was not cleared from the status bar when closing a session
  • Fixed hanging when recording allocation call stacks in certain cases
 

Release 8.0   |    2013-07-17

Explore What's New

New features:

  • Tracking of RMI, web service and remote EJB calls between multiple profiled JVMs
  • MongoDB probe
  • HBase probe
  • Cassandra probe
  • Class loader probe with cross-link into the heap walker
  • Recording profiles for switching on multiple recording types at the same time
  • Support for loading PHD snapshots from IBM JVMs
  • Support for profiling Java 8
  • Heap walker: Optional retained size column in the classes view of the heap walker
  • Heap walker: Action to use all retained objects for the current object set
  • Heap walker: Actions to use retained objects for the selection in the classes and references views
  • Heap walker: Action to use loaded classes for a class loader instance in the references views
  • Heap walker: The class loader grouping table now has an action for using the selected class loader instance
  • Reduced overhead, synchronization and allocations in the probe recording system
  • Reduced overhead for recording exceptional method runs
  • The status bar now shows all active recording types with a balloon
  • All lists are now quick-searchable
  • Support for JAR directories for local session types
  • New demo session: "Demo server" that helps to experiment with several probes

Bugs fixed:

  • Script classes were not recompiled when the selected JVM was changed
  • Hot spots views: Exceptional methods runs were not merged in backtraces
  • Session settings: Relative paths in java file paths were not interpreted as relative to the installation directory
 

Release 7.2.3   |    2013-06-21

New features:

  • Bundled integration for IntelliJ IDEA 12.1 (the newest IDEA plugin is always available in time from the IDEA plugin manager)
  • Generic WTP integration for the eclipse 3.6 and 3.7 IDE integrations

Bugs fixed:

  • Integration wizard produced wrong VM parameter for IBM JVMs on Solaris
  • Fixed a VerifyError in conjunction with AspectJ
  • When consolidating probe events, prefer to keep open and close events since they are usually more interesting
  • Fixed hanging after the output "Native library initialized" that could happen when other Java agents where present
  • Fixed a problem with proxy classes having a different package name in recent Java releases
 

Release 7.2.2   |    2013-01-16

New features:

  • Biggest objects view in the heap walker: Objects in "cutoff" nodes can now be selected
  • Bundled integration for IntelliJ IDEA 12.x (the newest IDEA plugin is always available in time from the IDEA plugin manager)

Bugs fixed:

  • Platform API was partially broken (regression in 7.2)
  • Monitor history and locking history graph: If a very large numbers of events were recorded, opening a snapshot could be very slow
  • Monitor history graph: For snapshots, the telemetry could not be zoomed out
  • Attaching to a 64-bit JVM from a 32-bit process did not work on Solaris and HP-UX
  • Attaching to a 64-bit JRockit JVM did not work
  • Sampling did not produce any results with Java 1.4 under some circumstances (regression in 7.0)
  • Code samples in help were compressed to single lines
  • Mac OS X: IntelliJ Idea integration from JProfiler did not work
  • Fixed NPE in eclipse IDE integration
 

Release 7.2.1   |    2012-11-15

Bugs fixed:

  • Attaching to JVMs with a different pointer size and attach to Windows Service was broken (regression in 7.2)
  • Expansion popups in hot spots views were not hidden under some circumstances
  • IDE integration wizard for IntelliJ IDEA did not work for fresh IDE installations with no downloaded plugins installed
  • Mac OS X: When integrating Intellij IDEA from JProfiler, show the file chooser with the initial directory in ~/Library/Preferences
 

Release 7.2   |    2012-09-28

Explore What's New

New features:

  • RMI probe
  • Web services probe
  • Offline profiling can be set up with the jpenable command line utility
  • URL request splitting in the call tree is now support for sampling as well
  • Heap walker: Compact incoming references in the heap walker for selected data structures such as linked lists
  • Heap walker: New inspections for class inheritance and class loading
  • Heap walker: Show method and thread information for incoming references from the stack
  • Heap walker: Cumulated incoming reference view shows percentages, counts and sizes based on the top-level row
  • Heap walker: Added a "Show unreferenced objects" action in the cumulated incoming references view
  • Heap walker: The "Duplicate strings" inspection now shows the string length instead of the shallow size
  • Heap walker: Less indeterminate progress information when taking a heap dump
  • Heap walker: If a class object is selected in the reference views, the "Use" menu now contains a "Use instances of selected java.lang.Class objects" entry
  • IDE plugin for eclipse 4.2
  • Support for directly loading gzipped HPROF snapshots
  • Command line arguments for jpenable and jpcontroller to connect to known pid and profiling port
  • Reliability improvements for the IBM JVM
  • 20% overhead reduction for instrumentation
  • View filters now support the wildcards * and ? also for packages
  • Probe telemetries with multiple lines are now shown as stacked area graphs by default with line graphs as an option
  • Dynamic memory views and heap walker classes view: Group classes by their name, showing the number of distinct classes in brackets
  • Monitor history is now reset when monitor recording is started. It's much easier to analyze use-cases that way.
  • Cross link action from monitor statistics view to monitor history view
  • Netbeans and IDEA integrations do not write into the installation directory of the IDE anymore
  • Integration wizards: Select 64-bit JVM by default or 32-bit if the current JVM is 32-bit
  • Heap walker, outgoing references view: The filter value dialog for character values now accepts strings instead of characters separated by semicolons
  • Integration wizard for eclipse Virgo 2.x and 3.x
  • Integration wizard for Apache Geronimo 3.x
  • Integration wizard for Oracle Weblogic 12c
  • Integration wizard for Coldfusion 10
  • Integration wizard for ObjectWeb Jonas 5.x

Bugs fixed:

  • In some situations, the hot spot views showed too few hot spots due to a percentual cutoff. Now, a minimum of 100 hot spots will be shown.
  • Do not use file extensions to determine the type of a snapshot (jps, hprof or gzipped hprof)
  • Call tree view: In some situations, the payload times could be inconsistent in snapshots
  • Class path browser and class selector progress dialogs could not be canceled
  • JRE search wizard in the general settings dialog was broken
  • Heap walker: After showing a path to a GC root in the "Incoming references" view, closing and re-opening nodes in that path could break the tree
  • jpintegrate did not ask if the profiled JVM was 64-bit or not, so the modifications were always for 32-bit JVMs
  • Heap walker reference views: CSV export did not work if a "more instances" node was present
  • Quick attach did not work with OpenJDK on Mac OS X
  • IDE integrations on Mac OS X did not work if OpenJDK 7 was the default JDK
  • Offline mode in integration wizards was broken (regression in 6.2)
  • Some probe events from completely unprofiled call stacks were not shown in the probe hotspots view
  • When applying new profiling settings, IDE source code navigation was lost
  • String inspections did not work when profiling an OpenJDK JVM on Mac OS X
  • Could not select config directories of IDEA and Netbeans on Linux/Unix and Mac OS X when performing IDE integrations
  • Fixed VerifyError on IBM 1.7 with object serialization
 

Release 7.1.2   |    2012-05-02

Bugs fixed:

  • Direct usage of Unsafe.park was recorded in the "Runnable" thread state instead of in the "Waiting" thread state
  • Reduced the overhead of request tracking
  • Sampling without filters could show some calls made by the JProfiler agent
  • Fixed problems with the file probe on the IBM JVM
  • Thread.sleep() was not always accounted to the "Waiting" state in attach mode
  • Invokedynamic constant pool entries could crash the JVM
  • The Net I/O thread state was sometimes not recorded correctly with dynamic instrumentation
  • When a method waited during reconnection it was always recorded in the "Runnable" thread state if sampling was used
  • Fixed crash for classes with irregular constant pool entries generated by JBoss
  • Could not use command line export for probes registered with a ProbeProvider
  • If estimated CPU times were recorded, the "Runnable" times of payloads were not set
 

Release 7.1.1   |    2012-03-18

New features:

  • The bundled IDEA plugin now supports IDEA 11.1
  • Integration wizards for Jetty 7.x and 8.x
  • Integration wizard for Caucho Resin 4.0

Bugs fixed:

  • Changing the thread selection in the CPU "Hot spots" view could break the view
  • Fixed problem with heap dumps that did not contain all objects (mostly in attach mode)
  • Fixed NPEs in call tracer and probe events views
  • Fixed problem with the IBM Java 7 verifier
 

Release 7.1   |    2012-01-26

Explore What's New

New features:

  • JPA/Hibernate probe with support for Hibernate 3.x, Hibernate 4.x, EclipseLink 2.3+ and OpenJPA 2.1+
  • Probe tracker for tracking selected hot spots or control objects over time
  • Context menu in views with a call tree view now has an "Add Filter From Selection" action that offers a number of actions to modify the current filters based on the current selection
  • Ignored methods tab of the filter settings: It is now possible to select all methods of a selected class
  • Added trigger actions for starting and stopping probe recording
  • Groovy call site methods are now ignored by default
  • "Servlet" probe: Added a check box in the servlet probe config for switching off URL splitting in the call tree
  • Bundled plugin for IntelliJ IDEA 11

Bugs fixed:

  • JDBC probe: Batch execution parameters in the probe event view showed the data of the last addBatch call for all rows
  • JDBC probe: Always show physical connections. This eliminates a potentially large number of connection wrappers that are often unused.
  • Servlet probe: URLs from filter chains were not recorded
  • Entries in the hot spots view could be shown as "null" after using view filters or restarting recording
  • When using JRE 7 for the JProfiler GUI, an exception could be thrown when calculating allocation hot spot comparisons
  • Probe control objects view: Expanded tables with nested properties were not preserved correctly when new control objects were added to the view
  • Call tree view: exported XML files could be corrupted
  • Profiling settings: On the "Probes & JEE" tab, the ""Record exact payload call stacks in sampling mode" could not be changed
  • Probe events and control objects views: Event filter was not persistent when the probe view was changed
 

Release 7.0.1   |    2011-10-13

New features:

  • Support for profiling on Linux ARM
  • The JProfiler GUI can now run with a Java 7 JRE (Note: profiling Java 7 has been supported for a long time)
  • Added "Freeze view" actions for "All objects" and "Recorded objects" views

Bugs fixed:

  • Changing request tracking types in the startup dialog did not save the session, so the changes were not persistent sometimes
  • When moving back in the heap walker history, some controls in the references views were disabled (regression in 7.0)
  • "Go to start" action in the heap walker did not hide the group table at the top if the current object set was created by an inspection
  • Code completion in script editor: No parameters names were shown for JProfiler API classes
  • When using the "Add method trigger" action in the call tree to create a trigger with script actions, the scripts were not compiled immediately, so those script actions would have no effect until the next restart
  • Using the "Set root" action in the call tree multiple times did not work for snapshots
  • The HTML export of the CPU hot spot view could have empty backtraces under some circumstances
  • Profiling on Windows 2000 was broken
  • Object comparison: Creating an allocation tree or an allocation hotspot comparison from the selection was broken
  • Fixed a rare UTFDataFormatException
 

Release 7.0   |    2011-07-15

Explore What's New

New features:

  • Probes for JDBC, JMS, JNDI, servlets, files, sockets and processes
  • Custom probes with API and direct configuration in the JProfiler GUI
  • Request tracking in the call tree view for executors, AWT, SWT and thread start
  • Inspections view in the heap walker
  • Primitive value and script filters in the outgoing references view of the heap walker
  • Action for displaying the toString() values of objects in several heap walker views
  • Redesigned references and graph views in the heap walker
  • History in the call tree view
  • Analyze long-running AWT events in the call tree
  • "Run script" trigger action with direct script entry in JProfiler
  • Show thread group names in thread history view
  • Total line and column filters in the monitor history view
  • Thread creation is now recorded in attach mode
  • The Netbeans integration now runs JProfiler standalone to support mixed 32-bit and 64-bit installations
  • New "JDBC demo" session
  • Integration wizard for Websphere 8

Bugs fixed:

  • The SWT method Display.sleep was not added to the waiting state
  • Small heap dumps are now analyzed much faster
  • Fixes for instabilities with JRockit and IBM JVMs
  • When profiling Websphere, the net I/O thread state did not include some IBM-specific methods
 

Release 6.2.4   |    2011-07-08

New features:

  • Added the option "address=[IP address]" for the -agentpath VM parameter to select a particular network interface for the profiling agent
  • Bundled JProfiler plugin for IntelliJ IDEA 10.5

Bugs fixed:

  • Fixed crash when instrumenting classes whose constant pool was nearly full
  • Fixed illegal exception table problem when instrumenting certain Scala class files
  • All locally detected JREs were reported with the vendor "Sun" (Regression in 6.1)
  • The bundled JRE in the Windows installers did not work with some languages
  • No expansion popups were shown for long thread names in the thread history view anymore (regression in 6.1.2)
  • Quick attach dialog: When searching for JVMs was slow due to hanging or damaged JVMs, the dialog would be very sluggish
  • Cancelling profiling sessions from IDE integrations did not kill the started process anymore (regression in 6.2)
 

Release 6.2.3   |    2011-05-05

New features:

  • Support for loading native Android HPROF heap dumps

Bugs fixed:

  • Java 6u25 broke several features in JProfiler
  • Fixed a crash that could occur when applying new profiling settings (regression in 6.2)
  • The "Startup immediately, connect with JProfiler later" mode could crash at startup with java 1.5
  • View filters in call trees did not work correctly anymore (regression in 6.2)
  • Fixed a crash when loading certain snapshots
  • Old threads and bookmarks were not cleared when applying new profiling settings. This could lead to errors in the JProfiler GUI.
  • The time axis of VM telemetries did not start at zero when profiling Java 1.4 and 1.5
  • Fixed loading of converted Android HPROF heap dumps
  • Linux: Workaround for the "sun.awt.X11.XException: Cannot write XdndAware" exception on Ubuntu and Suse Linux when using a 1.6.0_21+ Oracle JRE to start the JProfiler GUI
 

Release 6.2.2   |    2011-03-24

Bugs fixed:

  • Profiling with recent Java 7 builds did not work anymore
  • Fixed a deadlock when JProfiler was used together with some Java agents
  • In attach mode, some classes in the heap walker had wrong fields
  • In the heap walker, after calculating the retained size for a data size, the iteration through objects in the reference and data views could be broken
  • Only one implemented interface was shown in the outgoing reference tree of the heap walker
  • Idea 9.x integration: Attach action did not work.
 

Release 6.2.1   |    2011-02-28

Bugs fixed:

  • Fixed several classloader-related regressions in 6.2.
  • Fixed NPE when loading certain HPROF snapshots
  • JDBC recording did not work with sampling (regression in 6.2)
 

Release 6.2   |    2011-02-14

Explore What's New

New features:

  • New profiling mode: Attach JProfiler GUI to running JVMs, also from IDE integrations
  • Enable remote profiling for running JVMs with the new jpenable command line utility
  • A command line controller for profiled JVMs is provided with the new jpcontroller command line utility
  • Improved filter selection in the session settings dialog
  • Heap walker: The application hot spots view now shows back traces
  • Improved behavior and progress feedback when connecting to a server that was integrated with the "startup immediately" mode
  • Display calendar time in bookmarks dialog and in the status bar for views with a time axis
  • Display calendar time in status bar for snapshots (only for snapshots saved with 6.2 and higher)
  • Profiling OSGI applications is now possible without having to modify OSGI properties for boot delegation
  • Integration wizard for Tomcat 7.x
  • Integration wizard for JBoss 7.x

Bugs fixed:

  • Ignored methods in the filter settings did not work with unfiltered methods
  • When changing profiling settings with different filters, a lot less classes are newly instrumented now
  • Fixed problems when changing profiling settings from instrumentation to sampling
  • Not all park methods in LockSupport were attributed to the wait state
  • Deleting elements with the keyboard in the call tracer always deleted two rows
  • Fixed NPE in the heap walker
  • Canceling operation in the heap walker did not work correctly
 

Release 6.1.4   |    2011-01-24

Bugs fixed:

  • Working directory setting for local sessions was ignored (regression in 6.1.2)
  • In rare cases, entries in the call tree were in the wrong position (regression in 6.1)
  • "nowait" mode without initial configuration hung at startup (regression in 6.1.2)
 

Release 6.1.3   |    2011-01-17

Bugs fixed:

  • JProfiler could hang at startup without valid license (regression in 6.1.2)
  • On Linux, long expansion popups in the hot spot view could crash the JProfiler GUI process when compiz was enabled
 

Release 6.1.2   |    2011-01-04

New features:

  • Heap walker: XML export for biggest objects view, the cumulated reference views and the reference tree views
  • Heap walker: Improved the selection step display for reference selections
  • Heap walker: Selection steps can be exported as an XML file. The creation of this file can be enabled in the export file chooser.
  • "Hot spots" and "Allocation hot spots" views: Added an "expand entire tree" option in the export file chooser

Bugs fixed:

  • Showing a monitor object in the heap walker from the monitor views threw an exception (regression in 6.1)
  • Web start profiling did not work with recent JREs
  • Web start session configuration: The dialog showing cached JNLP URLs was always empty on Windows Vista and higher
  • When the first profiling settings template was saved and the general settings dialog was opened, it was always selected as the default for new sessions
  • A method graph with multiple initially selected methods was not centered correctly
  • The event count for non-runnable states was sometimes wrong for Thread.sleep
  • The "earlier calls" call tree node for recorded annotations (JDBC calls, etc.) was missing in snapshots
  • For very short-running CPU or allocation recordings using the API in a live session, the CPU and allocation views remained in the "no recorded data" state
  • "Allocation hot spots" view: The "Show in heap walker" action showed the tree map and not the hot spots in the heap walker
  • Trigger interceptors could not add payload to the call tree when no interception provider was specified as a system property
  • In the class selection dialog (e.g. in the allocation views), there was a top-level entry named "java/lang/Thread"
  • Heap walker: "Use items in selected collection" action did not work for maps and linked lists
  • Heap walker: The "unrecorded objects" value in the time view was wrong
  • Heap walker: The resolution of exported data in the time view was too coarse
  • Heap walker: Could not zoom in far enough in the time view
  • In rare cases when using view filters, there could be additional annotations in the call tree when switching the aggregation level
  • "Hot spots" view: For non-method hot spots, the XML export was missing the hot spot values
  • The event count in the method graph for non-runnable states was wrong for recursive methods
  • The call tracer export button in the tool bar was never enabled
  • Internal calls to __jprofiler_nmp_sleep were shown in the call tree when sampling was used
  • The annotation hotspot counts were sometimes wrong when sampling was used
  • Monitor history graph: When profiling a 64-bit JVM, the owning nodes were not always shown
  • Call tracer: The displayed stack trace could be wrong for restarted traces
  • Fixed a rare offline snapshot corruption
  • Opening a snapshot while the call tracer view was active could lead to an error
  • URL entries could be on top-level instead of the correct position in the call tree when profiling a 64-bit JVM
 

Release 6.1.1   |    2010-11-10

Bugs fixed:

  • Several integration wizards on Unix did not work anymore (regression in 6.1)
  • Heap walker incoming reference tree view: Some paths to GC root were not merged correctly (regression in 6.1)
  • Heap walker allocations view: unrecorded objects node was labeled as filtered classes nodes
  • Fixed undefined behavior when loading snapshots from a newer version of JProfiler
 

Release 6.1   |    2010-10-22

Explore What's New

New features:

  • Full support for Java 7
  • Much better support for loading extremely large snapshots
  • Heap analysis is now stored for future use
  • Support for debugging and profiling at the same time
  • Creation of archives with the profiling libraries for remote platforms
  • Improved handling of the choice between sampling and instrumentation
  • Snapshots that have an uncompressed size of more than 2 GB can now be opened on 64-bit Windows
  • Heap analysis options can be set when opening a snapshot
  • Improved installer with streamlined installation and downloadable profiling libraries for other platforms
  • Support for IDEA X (current EAP build)
  • Support for Netbeans 6.9

Bugs fixed:

  • Snapshot comparisons: The heap dump was always loaded for non-offline snapshots even if it was not required for the comparison
  • Snapshot are saved more reliably when the heap of the profiled JVM is maxed out
 

Release 6.0.6   |    2010-07-01

New features:

  • Full support for eclipse 3.6
 

Release 6.0.5   |    2010-06-23

Bugs fixed:

  • Some usages of LockSupport.park were recorded as runnable
  • Fixed loading of some snapshot files from JProfiler 5.1 and earlier
 

Release 6.0.4   |    2010-06-07

New features:

  • Heap walker: "Purging index" phase is is now much faster
  • Bundled IntelliJ IDEA plugin now supports IDEA 9.0.2

Bugs fixed:

  • Thread dumps in offline snapshots were not loaded in the JProfiler GUI
  • Fixed loading of some snapshot files
 

Release 6.0.3   |    2010-02-12

Bugs fixed:

  • Opening large snapshots (> 2-3 GB) could result in using up all disk space
  • Data from the locking history graph and the monitor history view that was already visible in the JProfiler GUI at the time of saving was not shown in snapshots
  • Wrong tooltip was displayed for snapshots in the threads history view if no monitors were recorded for a particular thread and time
  • In the telemetry views, it was sometimes possible to zoom in from the initial zoom level, but not to zoom out again
  • The main thread was not recorded on BEA JRockit JVMs
 

Release 6.0.2   |    2009-12-14

Bugs fixed:

  • The IDEA 9.0 integration did not work with the final release of IDEA 9.0
  • Load session settings on startup for local sessions profiled with 1.6+ configured with the "Start immediately" startup mode to avoid problems with retransforming a large number of classes
 

Release 6.0.1   |    2009-11-18

Bugs fixed:

  • NetBeans plugin did not work if JProfiler was installed in a path with spaces
  • Source path could not be changed temporarily for a snapshot
  • The native library path in a local session configuration was ignored for 1.5+ JVMs
  • Print an exception if the "Create an HRPOF heap dump" trigger action fails
 

Release 6.0   |    2009-11-04

Explore What's New

New features:

  • Current locking and locking history graphs
  • Thread dumps view
  • Method statistics view
  • Exceptional method runs: Analyze the slowest executions of selected methods in detail
  • "Tree map" view mode in all call tree views and the biggest objects view of the heap walker
  • Auto-tuning for dynamic instrumentation: Methods with disproportional overhead will be suggested for a list of ignored methods
  • Simplified manual configuration of profiling with a single -agentpath VM parameter for Java 5+
  • Changing profiling settings without restarting the profiled JVM for Java 6+
  • Loading snapshots from IDE integrations
  • Support for FreeBSD x86 and Linux PPC
  • Thread history view: Tool tips with stack traces and links to the monitor section
  • Monitor history view: Integration with the new locking graphs
  • Call tracer: Added stack trace context information
  • Configurable levels and threshold for expansion in call trees
  • "Select in heap walker" actions now also work with snapshots. In live sessions you will be asked whether to use the current heap dump or whether to take a new one
  • Conditional recording of the monitor event history
  • Profiling without waiting at startup (nowait mode) does not require a config file for Java 6+ anymore
  • Minimum number of significant digits for data feed labels in VM telemetries
  • New icon set for Windows Vista/Windows 7 and all other non-Windows XP platforms
  • Remember window sizes for JProfiler frames
  • IDE integration for Netbeans 6.8 with support for profiling Glassfish v3
  • IDE integration for IntelliJ Idea 9
  • Integration wizard for JBoss 5.1
  • Integration wizard for Glassfish v3
  • Integration wizard for Coldfusion 9
  • Integration wizard for Oracle Weblogic 11g

Bugs fixed:

  • Fixed exception in command line integration wizard
  • Method trigger configuration: Browse in profiled classes did not work
  • Fixed performance regression in the selection of the heap walker time view with JRE 1.6 update 10 and higher
  • IDE integrations: Deselecting the "Open new window" option did not always work
  • Selecting primitive arrays in the heap walker from other views was not possible
  • Fixed problem with repeated docking and undocking of profiling views
  • Red markers for unprofiled classes in call tree views were sometimes incorrect
  • Native console for local sessions did not work on Windows Vista and Windows 7
 

Release 5.2.4   |    2009-09-17

Bugs fixed:

  • Fixed a race condition that could lead to a deadlock in the profiled JVM
  • Fixed a crash in the profiled JVM that could occur when the JVM terminated and the JProfiler GUI was not connected
  • Fixed a crash in the heap walker related to internal reflection classes
 

Release 5.2.3   |    2009-08-12

New features:

  • Support for eclipse 3.5 in the IDE integration wizard
  • Support for Netbeans 6.7 in the IDE integration wizard

Bugs fixed:

  • Make it clear in the GUI that invocation counts for non-runnable thread states refer to thread state events and not to actual method invocations
  • Method triggers on constructors did not work
  • Object comparison: Reloaded classes with the same name contributed multiple rows with erratic numbers to the comparison
  • Heap walker: The fallback for large snapshots did not always work
  • Heap walker: Fixed a crash on Mac OS X when calculating deep sizes
  • Heap walker: HPROF snapshots with multiple segments (for example Android snapshots) could not be loaded
  • Certain old JProfiler snapshot files could not be loaded anymore
  • Fixed a rare crash when profiling the IBM JVM
  • Mac OS X: Thread name changes were not shown in the JProfiler GUI
 

Release 5.2.2   |    2009-04-20

New features:

  • Added integration wizard for Netbeans RCP applications

Bugs fixed:

  • Fixed exception when scanning heap dump
  • If small icons were chosen for the toolbar, it was not possible to reset the icon size without restarting JProfiler
  • Fixed loading of very large snapshot files
  • An exception was thrown at startup if a 1.5+ JRE without java.lang.management classes was used for profiling
  • Fixed exception for JNDI profiling with some JNDI service providers
  • Fixed NullPointerException when opening certain HPROF files
  • Fixed ArrayIndexOutOfBoundException when loading snapshot
  • Payloads larger than 64K lead to exception during profiling
  • Install eclipse plugin in "dropins" folder for eclipse 3.4
  • Solved "Could not find an unused local port" problem for IDE integrations
  • Web start sessions: "java-vm-args" attribute of the "j2se" element in the JNLP descriptor was ignored, so profiling did not work with 1.6.0 update 10 and higher when this attribute was used
  • Recorded objects and recorded throughput telemetries were always disabled for snapshots
  • Command line export: -liveness option was not respected for RecordedObjectsView
  • Mac OS X: Applet profiling instructions given by the wizard were wrong
 

Release 5.2.1   |    2008-12-29

New features:

  • Added a view setting to switch off display of declaring classes for the reference trees in the heap walker
  • Heap walker, tree of incoming references: Show declaring classes if different from actual class
  • Heap walker, reference graph: Improved tooltip display and show declaring classes if different from actual class

Bugs fixed:

  • Taking a heap snapshot could fail under some circumstances with an ArrayIndexOutOfBoundsException
  • Heap walker, tree of incoming references: It was possible to invoke "Show paths to GC root" on GC root nodes themselves with confusing results
  • Heap walker, tree of incoming references: Multiple selection did not always work as expected
  • Heap walker, tree of incoming references: Object IDs were shown for GC roots
  • Heap walker, reference graph: Multiple references from fields with the same name in superclasses were not displayed
  • Heap walker: Deep size and retained size for the current object set were shown in a confusing order
  • Heap walker: Selection steps were initially not shown even if selected in the view settings
  • Payload descriptions (e.g. JDBC statements) with a size of more than 64kB caused an exception to be thrown in the profiled JVM
  • Tooltips in graphs are now shown immediately and are not hidden after a few seconds
 

Release 5.2   |    2008-12-17

Explore What's New

New features:

  • Much lower memory overhead on the profiled JVM when taking a heap snapshot
  • Much lower memory overhead when opening snapshots with heap dumps or HPROF snapshots
  • Much lower memory overhead when opening snapshots with lots of CPU data (for snapshots saved with 5.2+)
  • CPU data of dead threads is now stored to disk periodically to decrease the memory overhead on the profiled JVM
  • Added "JVM startup" and "JVM exit" triggers
  • Enabling and disabling triggers from the GUI and the API
  • Trigger groups that can be enabled or disabled together
  • Trigger action and API for controlling the call tracer
  • "Trigger heap dump" trigger action now also works in online mode
  • Method trigger: Added "ignore recursive calls" option, enabled by default
  • Status indicators and quick switches for allocation recording, memory recording and trigger execution in the status bar
  • "Edit bookmarks" dialog to show, edit and export all bookmarks
  • Export bookmarks from the command line by specifying the "Bookmarks" as the view name
  • Line style and color of bookmarks can be edited
  • Heap walker, time view: Added a "Select between bookmarks" action to select all objects allocated between two bookmarks.
  • Session import and export
  • Command line integration wizard ($JPROFILER_HOME/bin/jpintegrate)
  • View filters for snapshot comparison views
  • Hiding of selected nodes in call tree and hot spot views
  • Support for HP-UX on Itanium
  • Bundled IDE integrations for IDEA 8, JDeveloper 11g and Netbeans 6.5
  • Better user experience for slow operations in the heap walker
  • Better resize behavior of table columns
  • The difference columns in the "All objects", "Recorded objects" and "Allocation hot spots" views now show percentages as well. A view setting for switching between sort by value and sort by percentage has been added.
  • Command line export: Added parameter -viewfilters=[comma-separated list] for both export and comparisons to apply view filters to the exported view
  • Hidden messages can be enabled again on the "Miscellaneous" tab of the general settings dialog
  • Added "Do not show again" option for several messages
  • Integration wizard for Apache jsvc services
  • All integration wizards now support offline profiling
  • JDBC calls and other payload nodes in the call tree now show average times in brackets if this was selected in the view settings
  • Call graph: Added a "Remove all but selected nodes" action to the context menu
  • Allocation views: Added option to auto-update data periodically
  • Added menu item Session->Close Session to revert a window to its original state
  • Snapshot comparisons: The object comparison now has an option to compare objects in heap snapshot. In that way, HPROF heap snapshots can be compared as well.
  • Support for web start sessions on Mac OS X
  • Integration wizard for Websphere 7.0
  • Integration wizard for IBM Websphere community edition 2.x
  • Integration wizard for Jetty 6.x
  • Integration wizard for the Tanuki service wrapper
  • Integration wizard for Coldfusion 8
  • Integration wizard for Glassfish v3
  • Support for the IBM 1.6 JVM

Bugs fixed:

  • Quick search feedback in table views was broken under some circumstances
  • JDBC calls and other payload nodes in the call tree did not fully respect time scale settings in the view settings
  • Threads were not sorted alphabetically in the thread selector of the CPU views
  • Bookmarks created with the API were sometimes not transmitted immediately
  • When modifying trigger settings, the config file was not updated after closing the session settings dialog
  • Call tree comparison: When reloaded classes with the same name contributed to the same call stack, the comparison was faulty at that node
  • Remote integration wizard: If the installation directory of JProfiler on the remote machine was specified with a trailing file separator, the modification instructions were wrong or the integration failed.
  • Call tree view: "Show all" action after "Set as root" action did not always work correctly.
  • Web start sessions: The chooser button for JNLP URLs in the application settings did not show any results from a Java 6 installation (new cache format).
  • Web start sessions did not work with Java 1.6.0 update 10 and higher
  • "Hot spots" view: For hot spot types other than methods, average times and invocation counts were not displayed if "Sampling" was selected as the method call recording type, even though this information is always available.
 

Release 5.1.4   |    2008-05-30

Bugs fixed:

  • Under some circumstances, the trigger configuration could not be loaded anymore after multiple triggers had been defined for a session
 

Release 5.1.3   |    2008-04-29

New features:

  • Support for Mac OS X Java 6 DP9
  • Support for Netbeans 6.1

Bugs fixed:

  • HPROF dialogs were not correctly sized so that the OK button was sometimes clipped
  • Fixed problems with Netbeans integration
  • JProfiler MBean was garbage collected under certain circumstances
 

Release 5.1.2   |    2008-01-17

Bugs fixed:

  • The fix for "Instrumentation of some native methods" in 5.1.1 lead to other VerifyErrors that are fixed in this release.
  • Heap walker, reference view: the "tree of outgoing references" view mode did not show any data if strings with certain characters were among the outgoing references.
 

Release 5.1.1   |    2008-01-10

New features:

  • Call graph: optional display of average times, configurable in the view settings

Bugs fixed:

  • NPE was thrown in JNDI interception if the parameters of a JNDI query were null
  • Recorded allocation counts for objects created in native code was wrong
  • HPROF options dialog was only displayed if the file name had an .hprof extension
  • Hot Spots view: deselecting "Show average values in brackets" in the view settings broke the table layout
  • Instrumentation of some native methods when profiling with Java 6+ produced a VerifyError
  • Monitor usage statistics included monitors from VM internal finalizer thread
  • Fixed race condition in the JProfiler GUI
  • Fixed some display problems if the JProfiler GUI was run with Java 1.4
 

Release 5.1   |    2007-11-07

Explore What's New

New features:

  • Tree views of incoming and outgoing references in the heap walker reference view
  • Cumulated references as a tree table in the heap walker reference view
  • Action to select all exclusively referenced objects in the heap walker reference view
  • Type resolution of object arrays in memory views and heap walker when profiling with Java 5+ (JVMTI)
  • Reworked internal source viewer with file structure display, syntax coloring and search
  • Bundled IDE integration for IDEA 7
  • IDE integration for eclipse 3.4 (M2)
  • IDE integration for Netbeans 6
  • Added option to remove unreferenced objects when loading HPROF snapshots
  • Added a fixed summary row at the bottom of the All Objects and Recorded Objects views
  • Added context menu in thread history view to switch to single threads in the call tree or hot spots view
  • Average time is now a separate sortable column in the CPU hot spots view
  • View and thread filters are now persistent on a per-session basis
  • The main toolbar can now display icons with text or small icons
  • External source viewer: source files which are contained in JAR files are now extracted to temporary files before the external viewer is invoked
  • Added "Show Source" and "Show Bytecode" actions to stack trace lists in the thread monitor view, the monitor views and the allocation spot description in heap walker
  • Added context menu in object comparison to create allocation call tree and allocation hot spot comparisons for the selected class
  • Session settings: if an executable JAR file is selected for profiling, the Class-Path manifest entry can be added to the class path automatically
  • The "node details" dialog in all tree dialogs is now non-modal
  • Added expansion popups in hot spot views
  • View filters in hot spots views now support all hot spot types. Previously, only methods were supported.
  • Selection step labels in the heap walker selection description are now hyperlinks to the first occurrence of the corresponding object set
  • Heap walker reference view: Added view source and view bytecode actions to the cumulated reference views
  • The "Record CPU data" and "Record allocation data" actions can now be invoked manually as well when there are triggers that start and stop recording
  • Integration wizard for install4j/exe4j projects
  • Integration wizard for BEA Weblogic 10
  • Integration wizard for JBoss 5
  • Integration wizard for Apache Geronimo 2
  • Integration wizard for Caucho Resin 3.1
  • API: added com.jprofiler.api.agent.interceptor.PayloadInfo.discardTime(). This can be called if no timing information is desired for an interceptor type.

Bugs fixed:

  • Clicking on Auto-Update in the status bar in the class tracker did not retrieve new data
  • Source viewer did not support secondary top-level classes with file scope
  • Numbers next to the bar in the hot spot view could be cut off
  • Table views in the heap walker did not have action for "Use selected objects"
  • java.lang.Class was not present in the package aggregation level of the heap walker
  • eclipse integration: source navigation to inner classes was broken
  • Disconnecting and reconnecting to a remote JVM when dynamic views were frozen lead to inconsistent state in the GUI
  • Fixed integer overflow in monitor usage statistics
  • Classes with varargs-style main method could not be profiled
  • Wrong units were used in the difference column of the object views when the primary measure was set to "shallow size"
 

Release 5.0.1   |    2007-07-27

Bugs fixed:

  • Data in call tracer and monitor history views was not saved to snapshots under some circumstances
  • Uninstaller did not work when JProfiler was running with Java 1.4
  • eclipse 3.1 integration: source navigation did not work for some project configurations
  • Netbeans integration: fixed several GUI problems
  • API samples did not work with floating licenses
  • HPROF snapshots with a file extension other than .hprof could not be loaded
  • Fixed a rare crash in the profiling agent
  • The entry for "calls to filtered classes" is no longer shown in the CPU hot spots view
 

Release 5.0   |    2007-04-27

Explore What's New

New features:

  • Powerful triggers and actions
  • Support for reading and writing HPROF memory snapshot files
  • VM telemetries overhaul with additional VM telemetries
  • Redesigned session settings
  • Call tracer view
  • eclipse integration: support for WTP launch configurations
  • JProfiler MBean for controlling the profiling agent
  • Native methods can be instrumented when profiling with Java 6+
  • Primitive data types can be captured by heap snapshots when using Java 6+
  • More flexible filter settings for method call recording
  • Custom profiling settings templates
  • Option to disable all filters when sampling is used
  • eclipse integration: support for eclipse 3.3M6
  • eclipse integration: support for equinox launch configurations
  • eclipse plugin is bundled as a feature
  • Improved JVM search in setup wizard and general settings dialog ("Search common locations")

Bugs fixed:

  • Expanded the number of allowed interceptors to 32768. Previously, only 255 interceptors were usable.
 

Release 4.3.2   |    2007-02-16

Bugs fixed:

  • Fixed problems with "Show source" action for IDE integrations
  • Improved wait thread state recognition for IBM VMs
  • Fixed java.util.concurrent recording issues
  • API: payload types for multiple interceptors of the same class were not unique
  • API: fixed rare custom interceptor instrumentation issues
 

Release 4.3.1   |    2007-01-05

New features:

  • Console and source viewer frames are excluded from modality when JProfiler runs with Java 6

Bugs fixed:

  • Webstart profiling did not work with Java 6 JRE
  • Fixed z-order issues in JProfiler GUI with Java 6
  • Library version mismatch detection was broken
  • NPE for call tree comparisons with filtered call nodes
  • Call tree comparisons with annotated JDBC/JMS/JNDI measurements were broken
  • Fixed rare deadlock on Mac OS X
 

Release 4.3   |    2006-12-12

Explore What's New

New features:

  • Profiling platform with API for writing custom profilers and snapshot analyzers
  • Interceptor API for injecting measurements, adding payload to the call tree and creating new hot spot types
  • EJB 3 support
  • Class tracker view
  • Bundled IDE integration for IDEA 6.0
  • IDE integration for Netbeans 5.5
  • IDE integration for eclipse 3.3 M3
  • Thread name changes are now tracked and updated in the JProfiler GUI
  • Action for highlighting the shortest path to the main node in the reference graph of the heap walker
  • Action to use the selected java.lang.Class objects in the Classes view of the heap walker
  • Option for CPU hot spot comparison to compare total call time or average call time
  • Layouters for the Call Graph view
  • IDEA integration: support for changing the JProfiler executable
  • Netbeans integration: support for profiling external Sun Java System Application Servers
  • Netbeans integration: snapshot comparisons are now accessible
  • Netbeans integration: several smaller bug fixes and enhancements
  • BEA Weblogic 9.2 integration wizard
  • Sun Java System Application Server 9 integration wizard
  • Glassfish Application Server V1 and V2 integration wizards
  • IBM Websphere 6.1 integration wizard
  • Apache Geronimo integration wizard
  • Tomcat 6.x integration wizard
  • Backup config files in the Sun Java System Application Server and IBM Websphere integration wizards

Bugs fixed:

  • A StackOverflowError occurred if agent.jar was not in not on the boot classpath, now a NoClassDefFoundError is thrown
  • Integer overflow could occur for garbage collected class instance counts in very large heaps
  • Server in the profiling agent was not robust enough, now it is possible to reconnect if the connection was broken due to a network error
  • Fixed race condition when profiling with the IBM JVM
  • java.util.concurrent support in the Threads section did not work with Java 1.6
  • Fixed a rare race condition that could lead to a crash at startup
  • Console window was not removed from the window list when closed with the X button
  • Live instance reference in the reference graph of the heap walker could be missing when not using the full GC option
  • Hotspots could be missing in the CPU hot spot comparison if the hot spot was below the internal threshold in one of the snapshots
  • Differencing in package aggregation level was broken
  • "Hide calls" checkbox in call graph view settings was not persistent
  • Method node selection dialog in call graph displayed wrong time unit
  • Cross-platform console did not support overwriting current line with \r
  • stack trace lists in threads section rendered J2EE components and URLs with internal class names
  • thread name selector threw exception when entering some special characters
 

Release 4.2.2   |    2006-09-25

Bugs fixed:

  • eclipse integration: environment variable modifications were not correctly handled by the JProfiler plugin
  • Snapshot comparisons: could not compare arrays in allocation tree and allocation hot spot comparison
  • Session ID was not re-generated when copying a session
  • Loading snapshots with 100,000s of threads could be very slow
  • Workaround for corrupted snapshots
  • Export ant task did not work with some JVMs
  • Command line export: no default liveness type for allocation views
  • Command line export: an exception was printed when exporting from a snapshot containing a heap snapshot
 

Release 4.2.1   |    2006-04-21

Bugs fixed:

  • Fixed wrong percentage values for very large total times in the hot spots view
  • IDE integrations did not work on Solaris x86, HP-UX and AIX
  • Library version mismatch detection was broken
  • All objects view and recorded objects view: wrong column headers for snapshots where shallow size was selected as the primary measure
  • All objects view and recorded objects view: wrong columns for class nodes in the package aggregation level when shallow size was selected as the primary measure
  • command line export of allocation tree and hotspots: liveness type was ignored if no class or package selection was specified
 

Release 4.2   |    2006-04-21

Explore What's New

New features:

  • Support for AIX (AIX 5.2/5.3 on PPC)
  • Support for HP-UX (HP-UX 11i on PA_RISC)
  • Support for Intel Macs
  • Facility for comparing saved snapshots
  • Command line export (and ant task) for saved snapshots
  • Command line comparison (and ant task) for saved snapshots
  • Class nodes in the reference graph of the heap walker
  • Support for finding classloader-related memory leaks
  • IDE integration for JDeveloper 10.1.3
  • IDE integration for IBM RAD 6.x
  • Thread monitor view: display creating thread as well as creation stack trace (JVMTI only)
  • Monitor usage history view: display owner thread and its stack trace for blocking events (JVMTI only)
  • Deadlock detection and monitor usage for the java.util.concurrent package
  • Preserve context when switching aggregation level or thread status in any call tree view
  • Option in the file chooser to export entire call trees rather than just the open nodes
  • Option to open exported files is now in the file chooser and remembered separately for each export format
  • Time and size display is now configurable in the view settings of all relevant views
  • Support for BEA Weblogic 9.1
  • New profiling setting to optionally show system threads
  • Optionally include weak references when searching for path to GC roots in the reference graph of the heap walker
  • Instant feedback in the status line when moving the mouse over edges in the reference graph and the call graph
  • Deadlock detection graph: show possible deadlocks if a thread holding a contended monitor is waiting to be notified
  • Long running incomplete method calls without any further profiled child method calls will now be shown with the correct times. Previously, only completed method calls of that kind were shown.

Bugs fixed:

  • Changed default sort mode in the "all objects" and "recorded objects" view to the more intuitive normal ordering
  • Incomplete instrumentation when switching off the java core classes for dynamic instrumentation
  • Thread history view sometimes had parts of threads missing when viewing offline snapshots
  • Windows look and feel fixes
  • Fixed faulty z-ordering of some JProfiler windows on KDE
  • Rare deadlock when switching to the VM telemetry views
  • Profiling settings were not easily accessible in the Netbeans integration
  • More robust snapshot format, fixed rare cases of corrupted snapshot files
 

Release 4.1.3   |    2006-01-10

New features:

  • Support for eclipse 3.2 M4
  • Support for Netbeans 5.0 beta 2
  • Locale-sensitive CSV separator char, can be overridden in bin/jprofiler.vmoptions

Bugs fixed:

  • "Show path to GC root" caused exception in Netbeans 5 integration
  • Time measurement type "estimated CPU times" didn't work correctly with JVMTI
  • Ant task for profiling didn't work in headless environments
  • Invoking "set root" multiple times did not work in call tree
  • Wrong sizes in the recorded objects view for special cases
  • Netbeans integration wizard did not work on Windows if user PATH variable did not exist
  • On reconnecting to a remote application, "profiling settings could not be set" was sometimes displayed
 

Release 4.1.2   |    2005-11-03

Bugs fixed:

  • Fixed instability when taking heap snapshots with JVMTI
 

Release 4.1.1   |    2005-10-28

Bugs fixed:

  • Problem with eclipse 3.1 integration
 

Release 4.1   |    2005-10-19

Explore What's New

New features:

  • Support for 64-bit JVMs: Windows/AMD64, Linux/AMD64, Solaris Sparc V9 and Solaris Sparc x64/AMD64
  • Support for Solaris on the x86/x64 architecture
  • Quick search in all tables and trees
  • Package aggregation level as a tree-table view with direct access to classes
  • IDEA 5 integration
  • Netbeans 5 integration
  • Filtering capabilities for monitor contention views
  • Ant integration
  • Redistributable agent: a new conversion wizard helps you distribute the profiling agent to your customer's machines
  • Automatic config file synchronization for remote profiling
  • Percentage threshold in call graph
  • Exclusive view filters
  • Selectable primary measure (instance count or shallow size) for all objects view and recorded objects view
  • Preliminary eclipse 3.2 integration (M2)
  • Allow zip and jar files in the source path
  • Export hot spots as CSV (in addition to XML)
  • Remove IDE integrations when JProfiler is uninstalled
  • Optionally display average value in call tree and hot spots
  • VM telemetry views: current values are displayed in the legend
  • Possibility to define an external source viewer in the general settings
  • New "View"-Menu (instead of the "Edit"-Menu) that is synchronized with the context menu, session settings are now under "Session"
  • More keyboard shortcuts. Keyboard are displayed in the toolbar tool-tips
  • Added inherent time to XML export of call trees
  • Integration between recorded object view and allocation views now also work for packages
  • High contrast color scheme for thread history view (can be activated in bin/jprofiler.vmoptions)
  • Possibility to reconnect if contact with the license server has been lost
  • Integration wizard for Coldfusion MX
  • Integration wizard for Sybase EAServer
  • Integration wizards for all BEA Weblogic start types

Bugs fixed:

  • Several features did not work correctly after reconnecting to a remote session
  • Thread status selector is now automatically switched to "All states" for JDBC, JMS and JNDI hot spots
  • Bookmarks set programmatically didn't work in interactive mode
  • Mac OS X: Apple-Q didn't quit profiled application
  • Do not fail if -Djava.library.path is defined manually
  • better recovery for invalid classes that should be instrumented
  • CSV export in the time view of the heap walker produced empty output
  • Time values are zero in CSV export of VM telemetry views
  • Heap walker: static variables could have wrong content when using JVMTI
  • Recording CPU data should did not reset custom root in call tree
  • Controller.startCPUProfiling in interactive mode was broken
  • JSP component detection did not work if URL splitting was disabled
  • eclipse 3.0 and 3.1 integration: profiling a JUnit Plugin Test did not work
 

Release 4.0.2   |    2005-06-23

Bugs fixed:

  • Fixed cumulated reference views for snapshot files recorded with JVMTI (new)
  • Workaround for Java2D crash in graph views
  • Fixed instrumentation problem with certain JSP pages
  • Fixed annotation display in call tree in frozen and snapshot mode
  • Improved robustness of snapshot saving in low memory situations
 

Release 4.0.1   |    2005-06-14

Bugs fixed:

  • Fixed a crash when setting view filters (new)
  • Fixed a crash in the agent library
  • Print warning if -Xincgc is enabled for JVMTI
 

Release 4.0   |    2005-06-10

Explore What's New

New features:

  • Measurement of JDBC, JMS and JNDI calls as annotations in the call tree
  • J2EE component detection for servlets, JSPs and EJBs
  • For servlets and JSPs, the call tree can be split for different request URLs
  • Separate hot spot calculation for JDBC, JMS and JNDI calls as well as URL invocations
  • Methods in the profiling API to register custom resolvers for JMS calls and URL invocations
  • Selectable aggregation level for most views: methods, classes, packages and J2EE components
  • Improved call tree views with enhanced visual feedback
  • "Exclusive deep size" calculation in the heap walker
  • Recording and display of object allocation times in the heap walker
  • New "Time" view in the heap walker that shows a time-resolved histogram of allocations
  • New sort modes in the references and data view of the heap walker for exclusive deep size and allocation time
  • Global bookmarks for all time-resolved graph views
  • Bookmarks for profiling events (starting and stopping of CPU and allocation recording)
  • Method in the API to programmatically set bookmarks
  • On-demand profiling: very small overhead if no CPU or allocation data is recorded
  • Profiling with hotspot compiler enabled by default for Java 1.4 and Java 1.5
  • New non-blocking startup mode of the profiled JVM for in-production profiling
  • Support for new profiling interface JVMTI in Java 1.5 and 1.6
  • New "All objects" view that works without recording allocations (JVMTI only)
  • Substantial reduction of memory consumption and performance improvements
  • Configurable timeout for long operations in the heap walker
  • Multiple selection in the cumulated reference views in the heap walker
  • New top-to-bottom hierarchical layout in the reference graph of the heap walker
  • Allocation call tree and allocation hot spot views have class-resolution by default
  • Option to not record primitive data in the heap walker (JVMPI only)
  • New action in the call graph to remove unconnected methods
  • Integration of the recorded objects view with the allocation views
  • Configurable threshold in the call tree view in percent
  • Action in the window menu to close unused console windows
  • Method in the API to save a snapshot when the JVM exits
  • Methods in the API to start and stop thread profiling as well as VM telemetry recording
  • Support for Netbeans 4.1, including free form projects and the bundled Sun Java System Application Server
  • Support for BEA Weblogic 9.0

Bugs fixed:

  • Major performance improvement for the thread history view
  • Integer overflow could lead to negative numbers in the hot spots view
  • Many bug fixes and smaller enhancements in the GUI
  • Many improvements and fixes for the GUI on Mac OS X
  • Fixed stability issues related to finalizers
 

Release 3.3.2   |    2005-05-30

Bugs fixed:

  • eclipse integration: support for eclipse 3.1 M7
  • eclipse integration: exception when profiling eclipse applications
  • eclipse integration: JRE selection for eclipse applications was not recognized correctly
  • exception when quickly opening nodes in the call tree
 

Release 3.3.1   |    2005-03-22

New features:

  • integration wizard for Websphere 6.0

Bugs fixed:

  • eclipse 3.x integration didn't work when default bootpath for JRE installation was switched off
  • view source in the eclipse 3.x integration did not work for multiple projects
  • improved number format for CSV export
  • copying rows in tables showed object references instead of numbers in some views
  • string display in the heap walker was sometimes incorrect
  • redraw problems in deadlock detection graph were fixed
  • fixed overflow in hotspot views that could lead to negative times and percentages
  • setup wizard dialog was too small on Mac OS X
 

Release 3.3   |    2005-01-14

Explore What's New

New features:

  • rewritten eclipse 3.x integration
  • rewritten IDEA 4.x integration
  • IDE integration for JDeveloper
  • IDE integration for Netbeans 4.0
  • considerably reduced memory consumption
  • improved long-term stability for profiling
  • heap walker: in the cumulated incoming reference view, reference holders as well as referenced objects can be displayed and selected
  • option to keep the profiled JVM alive
  • support for Java Web Start 1.5
  • CSV export for graphs
  • enhancements in XML export for trees
  • integration wizard for profiling servers in IBM WSAD
  • integration wizards for Pramati 3.5 and Pramati 4.x application server
  • integration wizard for Websphere 4.0 Advanced Edition
  • integration wizard for Sun Java System Web Server
  • integration wizard for Sun Java System Application Server
  • integration wizard for Oracle 10g Application server
  • integration wizard for Apple WebObjects Developer 5.x
  • snapshot files (*.jps) can be opened from the command line and from the Windows explorer
  • JBuilder IDE integration now supports JBuilder 2005
  • much better appearance of the JProfiler GUI with Windows native look and feel
  • JProfiler GUI now also runs under Java 1.5

Bugs fixed:

  • monitor statistics were broken
  • invalid class files caused a shutdown of the profiled application
  • many bug fixes in the GUI
 

Release 3.2   |    2004-09-16

Explore What's New

New features:

  • optional line number resolution in call trees and hotspot backtraces
  • export views to CSV data and XML
  • integration wizards now support profiling on remote computers
  • new wizards for converting local sessions to remote sessions and offline profiling sessions
  • option in hotspot views to add filtered classes to calling class
  • reference graph: instances have plus and minus icons for outgoing and incoming references. References can now be hidden.
  • method graph: methods have plus icons for incoming and outgoing calls. Methods can now be hidden by deleting them from the graph
  • possibility to search for arbitrary number of garbage collector roots in the reference view of the heap walker
  • possibility to view source files in the reference graph of the heap walker and the method graph
  • digit grouping for numbers in all views
  • separate cumulated and non-cumulated view modes for allocations view in the heap walker
  • library parameter for verbose mode to print out instrumented classes
  • on Windows, the -Xmx setting for JProfiler is now in the file jprofiler.exe.vmoptions

Bugs fixed:

  • resolved possible collision with zlib libraries of other products
  • Weblogic 8.1 SP3 start scripts were not recognized
  • resolved rare deadlock when starting up local sessions
  • rapid keyboard navigation in reference graph of the heap walker lead to an exception
  • snapshots saved with JProfiler 3.0 could not be read by JProfiler 3.1
  • IDE integrations did not work with some JREs
  • IntelliJ IDEA 4.x integration: working directory was not respected
  • reference graph: exception when Strings > 10k were displayed
 

Release 3.1.2   |    2004-08-13

Bugs fixed:

  • fixed stability problems with Windows XP Service Pack 2
  • dynamic instrumentation did not work with Apple 1.4.2 Update 1
  • application server integration wizard did not work on Mac OS X
  • the deep size calculation for object sets in the heap walker could produce wrong results
 

Release 3.1.1   |    2004-08-06

Bugs fixed:

  • fixed net I/O problems with IBM and classic JVMs
 

Release 3.1   |    2004-07-30

Explore What's New

New features:

  • new "net I/O" thread status in CPU and thread views
  • filtering controls for threads in the thread history view
  • selection of collection contents in the reference view of the heap walker
  • selection of multiple objects in the reference view of the heap walker
  • optional display of object IDs in the reference view of the heap walker
  • possibility to sort instances in the reference and data view of the heap walker by shallow and deep size
  • selection of multiple objects in the data view of the heap walker by flagging them
  • calculation of the deep size of object sets in the heap walker
  • expansion popups for long thread names in the thread history view
  • display of shallow and deep size for the current object in the reference view of the heap walker
  • big numbers are formatted with separators in tree views

Bugs fixed:

  • unreferenced objects were accessible in the reference graph of the heap walker even when unreferenced objects were removed for the heap snapshot
  • "show path to root" function in the reference graph of the heap walker could produce incorrect results
  • method graph: fixed inherent time calculation for recursive methods