JProfiler Changelog

What's new in JProfiler 14.0.2

Mar 12, 2024
  • New features:
  • Full support for Java 22 virtual threads
  • Support for virtual threads in HPROF snapshots
  • Support for OpenJPA 4 in the JPA/Hibernate probe
  • Bugs fixed:
  • Closing a popup for probe event types, control object types and thread liveness types other than with the control buttons in the popup or the keyboard shortcuts did not update the filters
  • For snapshots, adding a probe telemetry in the telemetry section showed a message to record data under some circumstances

New in JProfiler 14.0.1 (Jan 23, 2024)

  • New features:
  • Preliminary support for profiling the current Java 22 builds
  • Support for MongoDB 5.0.0-beta0
  • Bugs fixed:
  • Connecting to a Docker or Kubernetes container could throw an IllegalStateException: duplicate key
  • Fixed sampling of unmounted virtual threads on Openj9 JVMs
  • Fixed a rare deadlock when starting and stopping CPU recording

New in JProfiler 13.0.7 (Jun 27, 2023)

  • New features:
  • Support for Hibernate 6.2.3+
  • Support for MongoDB 4.10
  • Bugs fixed:
  • Attaching to a Docker container under QEMU emulation via SSH did not work
  • Attaching to Kubernetes using kubectl via SSH on a machine with a different architecture did not work
  • View settings dialog in probe telemetries was broken
  • In dark mode, selected areas in the locking history graph and the time view of the heap walker were not clearly visible
  • When exporting incoming and outgoing reference views in the heap walker to CSV or XML, string values for the references were truncated
  • In the class loader and exception probes, the hotspot view did not show percentages in the count column
  • HTTP Client probe: For the Java 11 HTTP client, if time calculation including response body consumption was selected, the payload was not recorded when the streamed body was closed before it was consumed
  • ProGuard method and field names were not deobfuscated if the SourceFile attribute was retained since ProGuard 7.2.2

New in JProfiler 13.0.6 (Mar 17, 2023)

  • New features:
  • Support for Kubernetes attach that involves interactive instructions in the output of kubectl for authentication purposes
  • Support for Hibernate 6.2 CR3
  • Support for Vertx 4.4
  • Bugs fixed:
  • Quick search action did not work in probe hot spots views
  • Improved detection of docker and kubectl executables as well as Kubernetes authentication plugins on macOS
  • Docker attach via SSH with user switch: Taking an HPROF heap dump did not work.
  • Docker attach via SSH with user switch: Attaching to minimal images without tar did not work.
  • Docker attach on local Linux machine did not work when switching to the root user

New in JProfiler 13.0.5 (Jan 10, 2023)

  • New features:
  • Support for profiling Java 20
  • Support for Hibernate 6.2
  • Support for the Spring 6 WebFlux client
  • Support for Apache CXF JAX-RS 4.0
  • Added "Session->Save temporary session" to save a temporary session that is created when attaching to a JVM
  • Bugs fixed:
  • Regression in 13.0.1: On Windows, the progress dialog after the session startup dialog was shown outside the screen so the UI could appear as frozen during retransformations in attach mode
  • Regression in JProfiler 13: The "Set as root" action was removed from call tree flame graphs, double-clicking to set a root also did not work anymore
  • Regression in JProfiler 13: HTML export of graphs was broken
  • Call tracer: The stack trace display could show wrong data when tracing multiple threads
  • Call tree flame graphs: The header label always displayed the number of nodes and rows for the entire call tree and not for the current root
  • Call tree flame graphs: Unrecorded times were shown as a flame graph node
  • Kubernetes support: When using the attach action from an IDE integration, the "On a Kubernetes cluster" option did not work
  • Kubernetes support: A custom location for kubectl was not applied when executing kubectl on a remote machine
  • Executor tracking: Some calls were not tracked with third-party ExecutorService implementations
  • Thread dumps in snapshots were not shown
  • URL splitting with generic scripts did not work

New in JProfiler 13.0.4 (Oct 10, 2022)

  • New features:
  • Added support for Netty 4.1.81+
  • Added support for RESTEasy 6.2+
  • Bugs fixed:
  • If dark mode was used in macOS 13 (Ventura), the JProfiler UI would hang on startup
  • JavaScript XHR view: The tree did not get the keyboard focus
  • JavaScript XHR view: XML export contained styling
  • When recording profiles were added or removed, the popup menu of the "Start recording" action was only refreshed for the current window

New in JProfiler 13.0.3 (Aug 25, 2022)

  • New features:
  • Support for profiling Java 19
  • JavaScript XHR origin tracking now supports Chrome 104+
  • Bugs fixed:
  • Kubernetes attach with SSH failed for the first connection attempt for each host system
  • Eclipse plugin: Fixed an exception if the JRE was contained in a path longer than 80 characters
  • Some dialogs could have a wrong parent frame when multiple windows were open

New in JProfiler 13.0.2 (May 4, 2022)

  • New features:
  • Support for Ktor 2.0
  • Attaching as root to JVMs that were not started by root now also works for Java versions lower than 11
  • Bugs fixed:
  • Kubernetes attach: If listing pods in all namespaces is not allowed, JProfiler now tries to list all available namespaces separately with the default namespace as a fallback
  • Remote attach and container attach: Fixed misleading error messages that recommended to switch users if an error occurred
  • Remote attach and container attach now also works if /var/tmp is not writable
  • Large tree views performed badly when scrolled with the trackpad on macOS
  • Async sampling: Since Java 11.0.15, native libraries that were loaded after async sampling was started could not be intercepted and profiled

New in JProfiler 13.0.1 (May 4, 2022)

  • New features:
  • When attaching to Docker or Kubernetes containers, include the name of the container in the created session to make it easier to work with multiple JProfiler windows
  • Bugs fixed:
  • If a local kubectl or docker location was configured on macOS, Kubernetes or Docker attach did not work
  • When attaching to Docker or Kubernetes containers, the container names could be cut off in the selection dialog
  • Regression in 13.0: Dialogs that were opened, closed and opened again were not centered again on their parent window
  • JavaScript XHR view: The message that no XHR calls were recorded was hidden if the tree was focused
  • When changing the session name in the session settings dialog, the title of the JProfiler window was not updated
  • Fixed rendering problems on Windows with some non-HiDPI displays
  • JProfiler windows were closed when opened from an IDE integration and the profiled process was terminated externally

New in JProfiler 13.0 (Jan 31, 2022)

  • New features:
  • Support for attaching to JVMs running in a Kubernetes cluster
  • Support for attaching to JVMs running in Docker Desktop on Windows and macOS
  • Support for attaching to OpenJ9 JVMs
  • Local attach: Added a user switcher to profile JVMs started by different users on Linux
  • Local attach: On Windows it is now possible to attach to a JVM started by the same user that runs in a different session
  • Local attach: Differing settings for the temporary directory no longer prevent jpenable on Windows to attach to a JVM when the PID is provided
  • Local attach: Elevated users can now attach to JVMs started by any user with jpenable on Windows when the PID is provided as long as the JProfiler installation is readable for that user
  • Remote attach: Support attaching to JVMs running in Redhat UBI-minimal images
  • Remote attach: FreeBSD and AIX are now supported
  • Support for profiling OpenWebStart
  • Sunburst diagram for the biggest objects view of the heap walker
  • Support for the Reactor Netty web client
  • Support for the Spring Webflux HTTP client
  • The "Java EE components" aggregation level is now called "JEE/Spring" and includes Spring classes that are annotated with @Component or derived annotations
  • Calls into proxy classes for profiled interfaces are now shown in the call tree. This adds support for a wide range of frameworks based on code generation.
  • Dark mode for documentation
  • Pressing the Delete key in view filter popups now deletes the selected entry
  • Streamlined integration wizards
  • Support for switching between light and dark mode on the fly
  • Adding the option ",loopback" to the -agentpath VM parameter for profiling will restrict connecting JProfiler clients to the current machine. This is added by default for sessions launched by JProfiler and by IDE integrations.
  • Reorganized general settings dialog
  • Async sampling mode is now supported on macOS ARM with Java 17
  • PHD dumps can now be taken without the presence of the java.management module on newer IBM VMs
  • CPU telemetry on Windows is now recorded without the presence of the java.management module
  • Added support for Hibernate 6
  • Added support for MariaDB connector 3
  • Added support for ktor 2
  • Added support for RestEasy 6
  • Added support for server side events in RestEasy, Jersey and CXF
  • Bugs fixed:
  • The controller MBean was not always added to an existing MBean server
  • Heap walker: In the incoming references view, node selections from the path to GC root search were not memorized when moving back and forth in the heap walker history
  • Call tree: Jumping to execution sites and to the probe call tree was not reliable
  • CPU threshold triggers were broken on non-Windows platforms
  • SSH password authentication did not work when connecting to FreeBSD 13
  • NetBeans plugin: Profiling Maven projects did not work for NetBeans 12.6
  • IDE integrations: When multiple JProfiler windows were opened from an IDE integration, some windows could not be used for standalone sessions anymore

New in JProfiler 12.0.4 (Sep 17, 2021)

  • Bugs fixed:
  • Opening snapshots from the Windows Explorer did not work if JProfiler was already started
  • Opening an HPROF snapshot from a Docker container could fail sometimes
  • "All objects" and "Recorded objects" views: Sorting by the "Difference" column did not always work
  • Heap walker: Adding more instances to an array reference in the outgoing references view only worked once
  • jpenable did not work when started with Java 16+
  • Fixed problems with dialog windows on recent macOS versions

New in JProfiler 12.0.3 (Jun 24, 2021)

  • New features:
  • Floating license customers can now request license keys for the web license server instead of using the on-premises license server
  • Added support for MongoDB 4.3
  • Added integration wizards for Glassfish V6 and Jetty 11
  • Bugs fixed:
  • Socket probe: Not all non-blocking I/O was recorded when profiling with Java 17
  • HTTP probe: In the newest releases of RestEasy 3.x, async APIs did not work with sync HTTP clients
  • Request tracking of Kotlin coroutines did not work with Kotlin 1.5 in attach mode

New in JProfiler 12.0.2 (Mar 17, 2021)

  • New features:
  • Support for the MongoDB 4.2+ reactive driver
  • Full support for Oracle JDBC driver 21.0
  • Support for encrypted and authenticated communication with the floating license server
  • Support for remote checkout of a license from the floating license server
  • Bugs fixed:
  • Thread dumps view: The comparison dialog for selected threads was not shown correctly in dark mode
  • Could not select hidden directories for JRE/JDK home directories which was a problem for JREs installed in .sdkman
  • Profiling did not work on some Linux Alpine machines
  • Tree views: The text in the node detail dialog and in the text from the copy to clipboard action could be garbled for particular character sequences
  • Fixed SSH host key verification for multi-hops tunnels

New in JProfiler 12.0.1 (Jan 12, 2021)

  • New features:
  • The JProfiler GUI now runs natively on ARM macOS (Apple Silicon)
  • Added full support for profiling Java 16
  • Added full support for Oracle JDBC 19.9
  • Bugs fixed:
  • io.netty.channel.epoll.Native.epollWait was not added to the Net I/O thread state

New in JProfiler 12.0 (Nov 24, 2020)

  • New features:
  • Flame graphs
  • Support attaching to JVMs in Docker containers
  • Support for profiling on Alpine Linux
  • Support for profiling macOS arm64 JVMs
  • Support for Netty in the new HTTP Server probe
  • Remote attach: Support taking HPROF snapshots for non-root users that are not the SSH login user
  • Remote attach: Support connecting to machines where no JRE is available for the login user
  • Remote attach: Support SSH users that have no home directory or no writable home directory
  • Attach functionality now supports JVMs started with -agentpath
  • NetBeans plugin: Added an "Attach to running JVM" action
  • NetBeans plugin: Added preference page where JProfiler executable and new window option can be edited
  • Support for Jakarta EE 9
  • New cross-platform look and feel
  • Localization to Simplified Chinese
  • Hyperlinks in the UI are now focusable and can be used with the keyboard
  • Support mouse navigation buttons for all histories in the UI, including the view selector
  • Added a "Classes grouped by class loaders" inspection in the heap walker
  • Bugs fixed:
  • Source and bytecode navigation in stack trace lists did not work for methods that had a parameter of type short
  • The "Return to call tree" action in call tree analysis view in the probe section did not activate the correct probe view in case a different probe view was activated in the meantime
  • Top level objects in the reference views of the heap walker did not show object IDs if the "Show object IDs" setting was enabled
  • Websphere integration wizard did not work in offline mode
  • Fixed several UI problems when working with multiple monitors that have different DPI settings
  • Payload nodes in probe call tree did not handle line breaks well and very long payload strings tool a long time to render
  • Payload call tree did not work as expected for very large recordings
  • Integration wizard for profiling launchers generated by install4j did not work for app bundles on macOS
  • Remote attach: Using root as the SSH users did not work if the home directory of the root user was not readable by other users
  • Fixed problems with trackpad scrolling on macOS

New in JProfiler 11.1.4 (Jul 31, 2020)

  • New features:
  • eclipse integration: Support for Bndtools launch delegates
  • Bugs fixed:
  • Exporting the entire tree of a hot spot view with no hot spots would hang the UI
  • Invoking the "Hide selected" action in the probe hot spots view halted view updates
  • Attach functionality was broken when running JProfiler with Java 14+
  • Executor tracking could cause exceptions with Oracle Universal Connection Pool
  • Host key verification did not work correctly for multi hop connections and non-standard ports
  • IDE integration session settings could not be changed for OpenJ9 VMs

New in JProfiler 11.1.3 (May 27, 2020)

  • New features:
  • Jpenable, jpdump and jpcontroller now also work with Java 12 and higher. They continue to work down to Java 1.6.
  • Bugs fixed:
  • Telemetries with area graphs could be broken when data was consolidated

New in JProfiler 11.1.2 (Mar 13, 2020)

  • New features:
  • HTTP requests probe: Added support for OkHttp 4.4 and Apache HttpClient 5.0
  • MongoDB probe: Added support for the 4.0 Java driver
  • Bugs fixed:
  • The "address" agent option for listening on a particular network interface did not work on AIX
  • IntelliJ IDEA plugin: Profiling Gradle run configurations did not work anymore since IDEA 2019.3

New in JProfiler 11.1.1 (Feb 13, 2020)

  • Bugs fixed:
  • Regression in 11.0: Limited timers with count 1 did not work for offline profiling
  • Linux/Unix: The JProfiler UI could not be started with Java 8u242 because of an NPE that was thrown at startup
  • macOS: The jpexport command line utility threw a HeadlessException when run with a non-Jetbrains-JRE
  • Quick attach: When using the filter text field, the wrong process was attached to
  • Expansion tool popups for long items in lists, trees and tables only worked on the primary monitor
  • Fixed an obfuscation problem with the profiling platform that prevented native library loading
  • The sample for the profiling platform had missing dependencies
  • The JProfiler samples could not be started from the command line in read-only locations, such as in the directory created by the Windows installer

New in JProfiler 11.1 (Jan 8, 2020)

  • New features:
  • Async sampling mode without safe-point bias on macOS and Linux
  • Native sampling on macOS and Linux
  • Support for opening JDK flight recorder snapshots
  • The new outlier detection view shows methods that have exceptionally slow invocations with respect to their average time
  • Async tracking now works with sampling
  • A "Show threads" action to the call tree and hot spot views to show all threads that contain the currently selected call stack
  • Call tree removal: Added an option to remove entire classes or packages, depending on the aggregation level
  • Call tree removal: Added an option to remove self-time only
  • Improved painting of zoomed out telemetries
  • Zooming in and out in telemetries now preserves the center of the view unless auto-scrolling is active
  • Telemetries can now be zoomed with CTRL + mouse wheel or zoom gestures on macOS
  • Zoom in and zoom out actions now work when scale to fit is active
  • Support for profiling on the Linux PowerPC Little Endian (PPCLE) architecture
  • Remote SSH attach and jpenable command line utility now work with a JVM that includes only the java.base module
  • Bugs fixed:
  • In some places, JProfiler used binary orders of magnitude (factors of 1024) instead of decimal orders of magnitude (factors of 1000)
  • Monitor tool tips in the thread history view were only shown if the locking history graph was shown before
  • Threshold spinner in the monitor usage history view did not react to the enter key
  • ZIP files could not be added in the source path selector in the session settings
  • Tree maps did not work for untimed call trees such as the exceptions probe
  • IntelliJ IDEA plugin: When profiling code that was compiled with JDK 11+, nested lambdas no longer had gutter icons for incoming and outgoing calls
  • Estimated retained class sizes were not shown for object arrays
  • "Retained size" column in heap walker did not respect the "Size scale" view setting if shallow sizes were selected as the primary measure
  • "Scale to fit" button in telemetry views did not propagate the new setting immediately to all other telemetry views
  • Wrong "without CPU recording" node was shown in payload hotspots for very large recordings
  • Attributes in MBean viewer were not sorted alphabetically
  • Fixed exception in heap walker when the heap contained contained a very large number of primitive arrays
  • Regression in JProfiler 11.0: Horizontal scrolling in views with table trees was broken
  • Fixed missing whitespaces in font rendering with 8u232+/11.0.6+ on Linux
  • SSH remote attach to 64-bit ARM platforms did not work
  • IDEA plugin: An exception was thrown in 2019.3 Ultimate Edition if the Grails plugin was disabled
  • IDEA plugin: Automatic package calculation did not work for Kotlin files
  • IDEA plugin: When profiling code that was compiled with JDK 11+, nested lambdas no longer had gutter icons for incoming and outgoing calls
  • IDEA plugin: When using the "Activate IDE" action in JProfiler, the IDE window was no longer raised since 2019.3

New in JProfiler 11.0.2 (Sep 17, 2019)

  • New features:
  • Full support for Hibernate 5.3 and 5.4
  • Help and Javadoc are now shown online, because local help files do not work with some modern browsers anymore
  • Bugs fixed:
  • Regression in 11.0: Pressing the left key did not collapse nodes in trees anymore
  • Memory telemetry: "Compressed Class Space" is now subtracted from the "Metaspace" pool and shown as "Metaspace (non-class)", so the non-heap pools are added up correctly
  • Fixed a problem where probe data in a snapshot could not be read
  • Fixed a problem with sorting probe hot spots
  • Call stacks were not shown in the probe events view for deferred events

New in JProfiler 11.0.1 (Jul 5, 2019)

  • New features:
  • Support for profiling Java 13+
  • Configurable custom UI font and high-contrast timeline colors in the general settings dialog
  • HTTP probe: Support for OkHttp 4.0, RESTEasy 4.1
  • Cassandra probe: Support for Cassandra 4.0
  • JDBC probe: JDBC driver support for Oracle 19.2, Db2 11.5
  • Notarized binary for macOS
  • Improved error handling for truncated HPROF snapshots
  • Bugs fixed:
  • The Windows ZIP archives did not have HiDPI enabled
  • The JProfiler UI did not have per-monitor DPI awareness
  • Fixed various UI problems with fractional HiDPI
  • Attach mode did not work on Linux ARM
  • Working directory was changed when profiling with the NetBeans plugin
  • HTTP probe: With the Java 11 HTTP client, recorded times of error events for async connections could be wrong
  • The time axis for the probe telemetries had a wrong offset in some scenarios
  • Probes: The control objects view did not have a "Show row details" action

New in JProfiler 11.0 (Mar 19, 2019)

  • New features:
  • HTTP probe for outgoing requests
  • Remote request tracking for HTTP requests
  • "Inline Async executions" call tree analysis for call tree and hot spot views
  • Automatic detection of tracking types that would yield data in the currently profiled JVM
  • Async tracking status display above call tree views with relevant actions
  • Detect whether calls in non-profiled classes would create async calls and offer to record them
  • Async tracking for Kotlin Coroutines
  • New light and dark look and feels based on IntelliJ IDEA with HighDPI support for Windows and Linux
  • Non-interactive mode for jpcontroller
  • Automatic filter detection for IDE integrations
  • Allocation sampling
  • Restructured session settings dialog without the separate "Profiling settings" dialog
  • Default settings for new sessions on the "Session defaults" tab of the general settings dialog
  • The "Method call recording" tab of the default settings includes an option to switch off the "instrumentation or sampling" question for new sessions
  • Action to copy selected setting categories from other sessions in the session settings dialog
  • Less verbose and more human-readable config file format that does not write default settings
  • Ask the user whether to keep the previous settings when attaching to a JVM that is already profiled with different settings
  • For offline profiling, it is no longer necessary to specify a session ID in the -agentpath VM parameter if the config file only contains a single session
  • Using the "id" or "config" option in the -agentpath VM parameter now automatically activates the "Startup immediately" mode
  • It is now possible to use the ~ character in the "config" -agentpath VM parameter option to refer to the user home directory on all supported platforms
  • View settings are now global and do not have to be changed separately for each session
  • Heap walker: Support for recording primitive data in IBM JVMs
  • Heap walker: Support for all inspections with the IBM JVMs
  • File and process probes are supported for IBM 8+ JVMs
  • "Save HPROF snapshot" UI action and "Create an HPROF heap dump" trigger action now generate PHD dumps for OpenJ9 JVMs
  • SSH tunneling for floating licenses
  • Support combined public key and password authentications for SSH servers
  • Support encrypted key files for #PKCS5 and Putty
  • Cache manually entered JVM location for remote ssh quick attach
  • The password for the same private key is not queried repeatedly for multi-hop connections anymore
  • Heap walker: Show string values for char arrays in the outgoing reference view
  • Heap walker: Tabular display of the contents of char and byte arrays in the outgoing reference view
  • Heap walker: The "Direct calls to methods of unprofiled classes" node in the "Allocations" view can now be selected for creating a new object set
  • Heap walker: Added a total string size column to the grouping view produced by the "Duplicate strings" inspection
  • Support for profiling Java 12+
  • Terminate the launched process from eclipse and NetBeans IDE integrations if the session startup dialog is canceled
  • Added the JPROFILER_AGENT_OPTIONS environment variable to allow setting debug parameters for the agent in situations where the "-agentpath" VM parameter cannot be modified
  • "Trigger heap dump" action: Added an option for recording primitive data
  • Added quick search functionality to the detail dialog of nested tables in the probe control objects view
  • The servlet probe now intercepts all Jetty handlers, adding support for Javalin, Spark and ktor-jetty
  • Added a "Shorten packages" option in the view settings dialog of call tree and hot spot views
  • Support profiling on JVMs that only contain the java.base module
  • Improved CSV export: All numeric columns are exported as numbers and not as text, consistent display of units in the header row
  • Pressing Ctrl-C in data tables now copies the CSV lines to the clipboard
  • Bugs fixed:
  • Nested tables in the probe control objects view were broken when the sort order was changed
  • The ID column in the table for selecting a running JVM was not sorted numerically
  • Command line applications did not list JVMs in ascending order of their PID
  • For profiling sessions that were started from IDE integrations, changed settings were not saved immediately. When profiling the same session again, the previous settings would be used.
  • Expanded nodes were not kept when reloading a call tree analysis
  • Using multiple script probes or method triggers for the same method did not work
  • Statistics in detail dialog were not correct for the "Direct calls to methods of unprofiled classes" node in the heap walker and for the target method of a "Set as root" action
  • Quick search in the detail dialog produced wrong highlights if the displayed text contained DOS line breaks
  • The inline display of a string value in the heap walker reference views was cut off if the string contained a line break
  • Adding more instances in the incoming or outgoing reference views of the heapwalker after using the heapwalker navigation broke the display
  • When exporting the entire tree in the heap walker allocation view, the UI would hang with a progress dialog
  • In the heap walker allocation views, icons for all nodes were shown with the decoration for unprofiled classes
  • Heap and thread dumps that were triggered in the agent were only displayed in a connected JProfiler UI if the corresponding view was activated at least once
  • "Analyze" action was permanently disabled after stopping and starting a session in the same window
  • The last chosen export format was not remembered for each view type
  • The action to show differences between two thread dumps could throw an exception
  • Command line export applications on Linux with Java 8 could throw exceptions because of the Gnome accessibility bridge
  • Fixed various problems with the icon overlays for unprofiled methods in the hot spot views
  • The "profile" Gradle task did not work with Gradle 5+
  • Quick search in call trees did not work for payloads and method arguments
  • Following a payload hyperlink from the call tree view into the "Class loaders" probe did not select call tree view
  • Non-functional call site hyperlinks were shown in probe views
  • Regression in 10.0: Quick search in call trees did not find all results anymore

New in JProfiler 10.1.6 (Jan 15, 2019)

  • Bugs fixed:
  • Fixed an exception when running the JProfiler GUI with Java 11
  • Fixed a crash when profiling a Java 11 JVM with class data sharing (CDS) enabled
  • Fixed a crash with classes generated by Mozilla Rhino
  • Fixed a crash when taking a heap dump with an IBM JVM
  • Fixed an IndexOutOfBoundException during heap dump parsing

New in JProfiler 10.1.5 (Jan 11, 2019)

  • Bugs fixed:
  • Fixed an exception when running the JProfiler GUI with Java 11
  • Fixed a crash when profiling a Java 11 JVM with class data sharing (CDS) enabled
  • Fixed a crash with classes generated by Mozilla Rhino
  • Fixed a crash when taking a heap dump with an IBM JVM
  • Fixed an IndexOutOfBoundException during heap dump parsing

New in JProfiler 10.1.4 (Oct 12, 2018)

  • New features:
  • Support for profiling OpenJ9 JVMs for Java 9+
  • Bugs fixed:
  • On macOS, an explicit update check could throw an NPE under some circumstances
  • Opening a session in a frame where a custom probe view with call tree analyses was open previously would throw an exception and break the UI
  • Custom probes compiled with -target 11 did not work

New in JProfiler 10.1.3 (Sep 9, 2018)

  • New features:
  • Support for MongoDB 3.8
  • Bugs fixed:
  • If an exception during remote attach had a null message, an exception was thrown and the original error was not reported
  • Overview telemetries: If the value of the maximum label had a value of 1, it was displayed with an incorrect unit
  • Support for running the JProfiler UI and its command line tools with Java 10 and Java 11
  • Allocation recording notice in the heap walker allocation views was broken
  • Prevent crash when a class is loaded in a different versions where the super/sub class relationship is reversed
  • Exporting the entire tree in call tree analysis views made the UI hang
  • Remote attach with an SSH multi-hop tunnel could fail if local host name resolution was different from that of intermediate hops
  • IDEA plugin: Support source code navigation for Kotlin 1.2.60+
  • IDEA plugin: Fixed exception when opening JProfiler snapshots from IDEA with recent IDEA versions

New in JProfiler 10.1.2 (Jun 13, 2018)

  • Bugs fixed:
  • Attaching to SAP JVMs did not work
  • HPROF snapshots could not be triggered from JProfiler UI with SAP JVMs
  • Fixed a problem where remote attach failed because an XML response could not be parsed
  • Fixed a race condition for thread name changes

New in JProfiler 10.1 Build 10184 (Feb 26, 2018)

  • New features:
  • New documentation that has been rewritten from the ground up
  • Documentation is now also available as an eBook in epub and Kindle formats
  • Context-sensitive help relating to UI elements is now available directly in the UI
  • Redesigned APIs for custom probes
  • The new injected probe API replaces the old API and can be used to write probe for 3rd party products
  • The new embedded probe API makes it possible to write self-contained probes for your own code and ship them together with your product
  • Script probes that can be configured directly in the JProfiler UI and allow you to add payloads to the call tree, similar to the SQL strings of the JDBC probe
  • A Gradle plugin for automating profiling and invoking the command line tools
  • New merged reference views in the heap walker
  • A "Merged dominating references" view in the heap walker
  • Class and class loader groupings in the biggest object view in the heap walker
  • Support for the MongoDB Async Driver
  • Support for MongoDB 3.6
  • Support for running the JProfiler UI and all command line tools on Java 9
  • Support for compiling scripts in JProfiler with Java 9 JREs
  • Support for profiling Java 10
  • Improved the startup time of the JProfiler UI
  • Removed the "Live instances" GC root in the heap walker, so it is easier to solve class loader leaks
  • Added an overview telemetry for probes like for the VM telemetries, so you can see all telemetries of a probe at once
  • Implemented quick search in the node detail dialog
  • Added an export option for including the session name in the suggested file name
  • Added configurable time scales for the call graph and the table views in the "Monitors & Locks" view section
  • Added configurable time scales for method statistics view, one for the total time column and one for all other columns
  • Executor request tracking can now reliably track multiple usages of the same Runnable instance
  • Added request tracking support for classic EJBs on Wildfly 11
  • Graph views: Ctrl+Space (Cmd+Space on macOS) toggles selection of highlighted nodes when quick search is active
  • eclipse IDE integration: Improved source navigation to lambda methods and anonymous classes
  • The session settings for snapshots are now unmodifiable to prevent confusion
  • Added a "Run GC" trigger action
  • Bugs fixed:
  • Heap walker: The path to GC root search did not prefer shortest paths and opened unhelpful nested GC roots when multiple roots should be found
  • Method splitting: Fixed a call tree corruption that occurred if an unprofiled split method threw an exception
  • Method splitting: The hyperlink for resetting the splitting cap was not displayed in the call tree
  • When opening a snapshot and choosing the deobfuscation option in the file chooser, choosing "None" as the deobfuscator prevented opening of the snapshot
  • MBean browser: The filter text field for the MBean tree was broken
  • Unfreezing the monitor history view or the locking history graph removed all extra tool bar buttons
  • Command line comparisons: Using the "sortByTime" option could lead to a ConcurrentModificationException
  • jpanalyze did not work with a floating license server
  • Probes could prevent classloader garbage collection by holding on to instrumented classes
  • Heap walker: If selecting retained objects with the "Thread locals" inspection, weakly referenced objects could be included
  • Heap walker: The "Thread locals" inspection threw an exception when no thread locals were present
  • Scripts did not resolve classes from directory class path entries that contained JAR files
  • Regression in 9.2: Monitor tool tips in thread history views were not displayed anymore
  • Applying overhead hot spots did not save the session settings, so these changes could easily get lost
  • eclipse IDE integration: The preference page did not show the JProfiler executable when no profiling session had been started yet after performing the integration from the JProfiler UI
  • Quick search in the locking history graph did not work
  • Disabling request tracking in the profiling settings did not completely disable all tracking types
  • After applying new profiling settings in a live profiling session, it was not possible to add or edit custom telemetries
  • The time in the header of the live allocation views was not updated if the view was recalculated from the "Show classes" analysis or due to a call tree root change
  • Status bar information when hovering over tool tips in graphs were hidden after a short time in live sessions
  • Heap walker: Stack traces in the node detail dialog of the incoming references view were wrapped unless the detail dialog was shown with the "Show more" hyperlink
  • macOS: Repeated use of the right arrow key did not select first child nodes in trees other than call trees
  • Class tracker: It was not possible to select the tracked class for the command line export
  • When the "Expand entire tree" option was selected in the export options dialog of the hot spots view, the export would hang
  • The default thread status for the method statistics command line export as well as for the probe call tree and probe hot spot command line comparisons was "Runnable" and not "All states" like in the GUI.
  • Fixed a rare deadlock at startup when profiling Java 1.6 VMs
  • File watcher thread and some NIO channels were shown in the runnable thread state
  • There was no auto-update for floating probe views if the probe was not selected in the main window
  • It was possible to invoke the "Add exceptional method", "Split method with a script" and the "Add method trigger" action for native and abstract methods that cannot be instrumented
  • Under some circumstances, the initial window size on macOS could be minimal, only showing the window controls
  • When saving a snapshot with jpcontroller and the specified relative path was not writable, a message with the wrong absolute path was written to the terminal
  • For generic types, the code editor suggested non-public methods and fields in code completion

New in JProfiler 10.0.4 Build 10084 (Oct 7, 2017)

  • Bugs fixed:
  • macOS: Fixed the empty menu bar that could occur with macos 10.13 in non-English locales
  • Regression in 9.2: Node detail dialog did not wrap long lines
  • Class tracker: In snapshots, a wait cursor was always displayed on the view
  • When opening a snapshot and choosing the deobfuscation option in the file chooser, choosing "None" as the deobfuscator prevented opening of the snapshot
  • Fixed a StackOverflowError when opening the profiling settings dialog on Linux with a non-default look and feel
  • Command line export did not use "All states" as default thread status for the probe hot spots view
  • Heap walker: The path to root search did not always prefer the shortest path

New in JProfiler 10.0.3 Build 10078 (Jul 21, 2017)

  • New features:
  • jpcontroller: When saving a snapshot, print the absolute path where the snapshot has been saved on the remote machine
  • Bugs fixed:
  • Fixed a crash after a class retransformation error
  • Too many dead threads could overload the JProfiler UI
  • IDEA plugin: source navigation to lambda functions did not work correctly with sampling and older Java compilers
  • eclipse plugin did not work correctly when eclipse was installed in a directory with spaces
  • MBean browser: Quick search in the tree of MBeans did not work
  • Quick search in call trees stopped at nodes with payloads under some circumstances

New in JProfiler 10.0.2 Build 10069 (Jun 22, 2017)

  • NEW FEATURES:
  • Added a keyboard shortcut for the "Show source" actions
  • BUGS FIXED:
  • Regression in 10.0: certain types of larger HPROF heap dumps could not be opened anymore
  • Regression in 10.0.1: jpenable did not work with Java 6
  • Remote integration wizard: When downloading agent files, no proxy dialog was shown when the connection failed
  • JProfiler did not work when installed in a non-ascii path on Windows
  • Fixed LogManager exception when profiling Wildfly with an IBM JVM
  • Do not warn for excessive instrumentation when selecting profiled classes in the package browser and sampling is used
  • eclipse IDE integration: When profiling JUnit run configurations, the session startup dialog was not shown

New in JProfiler 10.0.1 Build 10046 (Mar 31, 2017)

  • New features:
  • IDEA integration: Profiling gradle run configurations is possible starting with 2017.2 builds
  • Bugs fixed:
  • IDE integrations did not work under some circumstances
  • IDEA integration: Fixed profiling of local application servers
  • IDEA integration: Grails 2 run configurations could not be profiled
  • Added fallback strategies when temporary directory is not writable or does not exist
  • Anti-aliasing of row headers in timeline views was wrong

New in JProfiler 10.0 Build 10019 (Mar 8, 2017)

  • NEW FEATURES:
  • Zero-configuration remote attach and HPROF heap dumps via SSH
  • Complexity analysis view for analyzing the Big-O behavior of selected methods
  • Ability to pin, close and re-calculate call tree analyses
  • Call tree analyses for the call tree graph
  • Show the time when the data for the call tree analysis was collected
  • "Show classes" call tree analysis in the live memory section
  • New object analysis in the heap walker
  • "Mark heap" action to determine the base line for the new object analysis in the heap walker, also in the API and as a trigger action
  • Added a type filter option in the reference views of the heap walker with an optional instanceof behavior
  • "Show fields with null values in outgoing references view" option now also works for static fields
  • The toString() filter in the outgoing references view of the heap walker now also supports java.lang.Class objects for snapshots
  • "JVM exit action" in the session startup dialog for saving and immediately opening a snapshot when the JVM exits
  • Remote integration wizards now support SSH-connections
  • Added the option to synchronize the config file via SSH
  • Remote integration wizard: Added an "Edit Session And Synchronize Config" button on the "Finish step" that is visible if the config file has to be synchronized to a remote location before the session can be started
  • IDEA: For Java and Kotlin, the call graph can be displayed in the gutter of source editors with incoming and outgoing calls in popups
  • IDEA: List of hot spots is shown in the IDE, providing entry points for performance analysis
  • IDEA: Jump actions into JProfiler that show nodes in the call graph or call tree analyses for back traces and outgoing calls in the call graph
  • IDEA: Recording controls in the JProfiler tool window
  • IDEA: Profiling settings are now on a project-level basis with the option for each run configuration to make them run-configuration-specific
  • IDEA: Support for profiling Grails run configurations
  • IDEA: Ability to skip the session settings dialog on a per-run configuration basis
  • IDEA: For test run configurations, automatically save a snapshot when the JVM exits
  • IDEA: Reliable window foreground activation when switching between the IDE and the JProfiler windows
  • IDEA: Improved source code navigation for Java, including precise determination of lambda call sites
  • IDEA: Support for Kotlin source code navigation
  • IDEA: Activate IDE button in JProfiler window that is visible for IDE integrations
  • Configurable cap on call tree splitting
  • "Replace literals in unprepared statements" and "Keep literals for events view" options for the JDBC probe
  • Local attach can now attach to Windows servers running with accounts other than a system account
  • Added an option to switch off native instrumentation on the "Method call recording" tab of the profiling settings
  • The call graph can now optionally use the view filter that is set in the call tree view
  • Added a filter field to the class selection dialog
  • JRE configuration dialog: Added a "Purge" action to remove JREs that do not exist anymore
  • Hot spot and objects comparisons now show entries that do not appear in both snapshots. The view settings have an option to limit the comparison to common entries.
  • Hot spots views: Added an option for displaying total times instead of self times
  • Added a "Synchronize Config File" action to the context menu of the session list that is visible for remote sessions with configured config synchronization
  • The view filters in the hot spots view are now de-coupled from the view filters in the call tree views
  • Tooltips and legends in stacked telemetries now show total values
  • The "Heap" memory pool in the "Memory" telemetry now shows the maximum heap size in the legend
  • The non-modal detail dialog now always shows method signatures for views with call trees
  • Support for HBase 1.3
  • Support for Cassandra DataStax driver 3.1
  • Support for mongoDB 3.4
  • Support for Axis2 1.7 and CXF 3.1
  • BUG FIXES:
  • Blocking and waiting thresholds for monitor recording were not used if monitor recording was started by a recording profile
  • Call tree comparison: Jump nodes of recorded probes were displayed in the tree
  • Could not modify other sessions in start center when a snapshot was loaded
  • Heap walker: In the classes view, an exception was thrown when trying to sort by the "Retained size" column
  • Fixed process probe for Java 9 on non-windows platforms
  • Control objects were not reset when probe recording was restarted and the view was not shown
  • Probe control objects view: Calendar time was shown for missing end times
  • Alert dialogs on Windows were not ant-aliased under Alloy L&F
  • Do not add snapshots that are used in the command line export to the list of recent snapshots
  • "Show Selection In Heap Walker" action did not work in the "Current monitors" and "Monitor history" views
  • Map attributes in the MBean browser were not sorted
  • Fixed a problem with orders of magnitudes in telemetry tool tips
  • Applying new profiling settings did not work for ssh connections

New in JProfiler 9.2.1 Build 9246 (Dec 6, 2016)

  • NEW FEATURES:
  • The new code sample api/samples/mean shows how to programmatically access the JProfiler MBean
  • Heap walker: In the outgoing references view, the toString() filter of the "Apply filter by restricting the selected value" action now also works for Strings in snapshots
  • Integration wizards: In "Startup immediately" mode, class retransformations are reduced for faster connections: An optional "config synchronization" screen is displayed for remote sessions, for local profiling sessions, the config file is now automatically specified.
  • Support for NetBeans 8.2
  • Netbeans plugin: Added support for profiling Maven projects
  • BUGS FIXED:
  • Do not show thread dump for HPROF snapshots if no thread dumps are available (for example with jmap -F)
  • Fixed NPE for some Java 7 HPROF snapshots created with jmap -F (force)
  • Telemetry overview always scrolled to bottom when resizing the window
  • In the "All objects" and "Recorded objects" views, starting and stopping the session did not properly clear the view filters
  • Some fatal errors during a heap dump analysis were not displayed with an error dialog
  • Changing to the allocation view in an HPROF or PHD snapshot via the view selection dialog showed a progress dialog that never terminated
  • Regression in 9.2: "Start probe recording" and "Stop probe recording" trigger actions did not display the drop-down for the probe anymore
  • JProfiler UI on Solaris Sparc could not open heap dumps with newer 1.8 JVMs

New in JProfiler 9.2 Build 9237 (Jun 23, 2016)

  • New features:
  • Probe call tree view
  • Probe call tree comparison
  • Hyperlinks in the CPU call tree that link to the probe call tree (if payloads are not annotated directly into the call tree)
  • Exceptions probe
  • Merging and unmerging of call tree splitting on the fly
  • Call tree removal action for "what if" scenarios, also limiting the displayed data in hot spots view and call graph
  • Quick info for selected call tree nodes in the node detail dialog
  • Set root functionality and call tree analyses in allocation views
  • Improved snapshot loading performance
  • Show which views can contain profiling data in snapshots
  • Offer a list of recently loaded snapshots
  • Probe comparisons: Restrict the displayed built-in probes to the probes that were actually recorded in the selected snapshots
  • Command line comparisons and export: Fail with an error message if the required data has not been recorded
  • Heap walker: Added a view filter selector and a total line in the classes view
  • Heap walker: Show thread dumps for HPROF snapshots
  • Heap walker: For HPROF snapshots, a "show more" link in Java stack GC roots shows the entire stack trace in the node detail window
  • Heap walker: The stack reference inspections now allow you to select a specific thread
  • Heap walker: The reference views now have a "Run script on selected instance" action
  • Heap walker: Collection content selection and compact cumulated references now also work for java.util.concurrent.ConcurrentHashMap instances
  • JPA/Persistence probe: Support for Hibernate 5.2
  • Graphs are now exported as inline SVG (vector graphics) with tool tips for edges
  • Exceptional methods can now be in non-profiled classes
  • Added a "Common exceptional methods" menu to the add menu of the exceptional method configuration
  • Reduced overhead for exceptional method recording
  • Configurable cap on payload string lengths on the "Probes & JEE" tab of the profiling settings
  • Command line tools jpenable, jpdump and jpcontroller now work with Java 6+ (previously Java 7+)
  • File probe: With the "file path filter script" in the probe configuration, you can limit the scope of the measured file I/O
  • Quick search: Support paste keyboard action when quick search is active
  • Support custom Axis2 web service stubs and Apache HTTP client version 4.x for web service tracking
  • Support async web service tracking for Java 7 and 8, Axis2 and CXF
  • XHR tracking now supports Chrome 51+
  • Command line export and comparisons: Added -viewfiltermode and -viewfilteroptions parameters to configure view filters
  • Command line export and comparisons: Added -csvseparator option to change the CSV separator
  • Improved keyboard navigation with view change actions, see the "Window" menu for more information
  • Bugs fixed:
  • The inline display of the selected call tree did not display call tree splitting nodes correctly
  • Total row did not work in comparison views
  • Exporting large call trees from the command line is now much faster
  • When multiple call tree views were undocked, expansion of the call tree could lead to stuck "Expecting data" nodes
  • Auto-update information for allocation views was not shown in the status bar
  • Change the recursion display in the call tree analyses views to be less intrusive
  • For snapshots recorded in offline mode, the "Select in Heap walker" action in various views was not disabled if no heap dump was taken
  • Fixed blinking wait cursor on update in the probe hot spots views
  • Heap Walker: Stack traces in allocation selection step descriptions could show escaped characters
  • If the same snapshot is opened again, a warning is now shown with the offer to show the existing window
  • When config dialogs were shown in undocked views, the window order could be wrong
  • Do not ask "Create session" question when the profiling session has been started from an IDE integration
  • Coloring of percentage bars in "Calculate backtraces" analysis is now consistent and depends on selected summation mode
  • Export and view settings actions were not consistently enabled or disabled when views were undocked
  • Heap dump options dialog was broken when the heap walker was undocked
  • Web start sessions did not work with recent JREs
  • Fixed NPE in eclipse plugin when profiling servers
  • View filter case sensitivity was broken
  • Netbeans integration wizard did not suggest the correct location of config directory on Mac OS X
  • Regression in 9.1: MBean selection view in telemetry config was not updated if the MBean browser had already been used
  • Telemetry comparisons were clipped at the edges (regression in 9.1)
  • Command line allocation tree comparison: Could not set -aggregation option
  • Command line telemetry comparisons: The -measurements option had no effect
  • Command line threads telemetry comparison: It was not possible to compare the number of waiting threads
  • Probe hot spots comparison did not have "all thread states" as the default thread status selection
  • CPU call tree comparisons: Payloads were not properly sorted and not merged into single payload container nodes when setting view filters
  • "Undock view" action was not aligned in menus and had an incorrect key binding in the popup menu on the snapshot comparison frame
  • Call tree and probe call tree comparisons: Expansion state of the tree was not preserved when changing view filters or view settings
  • Heap walker: When "Show fields with null values in outgoing references view" was selected in the view settings, non-null references could not be expanded in the outgoing reference view
  • Probe telemetries: Current values in legend entries were not displayed under some circumstances
  • Convert local to remote wizard: Profiling settings were not copied to the newly created session
  • When attaching to Windows services, the progress dialog for starting the service detection helper is now cancellable, so the UI does not get stuck in the case of an error
  • HTML export for probe control objects views did not work if there were nested property tables
  • Files probe: Fixed recording of file channels opened with NIO.2 methods
  • Call tree history navigation with root changes or request tracking could fail under some circumstances
  • Command line exports: Times are now exported as plain numbers in CSV exports
  • Heap walker: compact cumulated references did not work for java.util.WeakHashMap instances
  • Probe descriptions could be lost and entries were shown as "null"
  • Locking graphs and thread history: Monitor tooltips were shown behind the main window on Linux
  • Filter indicator on call tree node icons did not work correctly in the call tree analyses when view filters were set

New in JProfiler 9.1.1 Build 9143 (Jan 12, 2016)

  • New features:
  • Java 9 support: Support for JEP 254 (Compact Strings)
  • Java 9 support: The JProfiler agent now works if only the java.base module is present
  • Java 9 support: Support new Java 9 version scheme
  • Improved support for new PostgreSQL and MariaDB drivers
  • Bugs fixed:
  • The eclipse IDE integration did not work with the new eclipse installer
  • Direct SSH connections did not work if a multi-hop connection had been configured previously
  • CPU and memory recording were active for snapshots if enabled in the initial recording profile of the session
  • Removing the call tree root in the hot spots view did not update the displayed data
  • If the JProfiler API jar was in the configured classpath, script dialogs did not work
  • MBean browser: Show the toString() result for values and operation results with a non-open type
  • Tool tips in views were not hidden when changing the view with the keyboard
  • HPROF heap dumps containing instances with missing classes can now be read
  • Fixed a memory leak for call tree analyses
  • Fixed the JProfiler executable selection on the eclipse 4.5 preference page
  • Improved the performance of the probe hotspots view
  • If probe hotspots were consolidated, control objects could lose their names
  • After canceling the quick start dialog, the start center was displayed
  • IDE integrations did not work if the IDE ran with Java 1.6
  • Object comparison: Total line was empty
  • "All objects" and "Recorded objects" views: The "Diff" column in the total line was empty
  • Biggest objects view in the heap walker: The "Show in graph action" remained disabled if an object set creation was canceled
  • When exporting a view for the first time, the initial directory in the file chooser was the root directory
  • Do not ask the "Create session" question when the profiling session has been started from an IDE integration

New in JProfiler 9.1 Build 9128 (Nov 18, 2015)

  • New features:
  • Connection leak detection in the JDBC probe
  • Built-in SSH tunneling for remote profiling
  • Telemetry overview showing all system and custom telemetries together
  • Diff view for thread dumps
  • Thread locals inspection in heap walker
  • Support for profiling modularized applications on Java 9
  • Support for profiling on Linux ARMv8
  • Shortened package names displayed in graph nodes, configurable with a view setting
  • Improved scroll and zoom behavior in graphs, including pinch-to-zoom on Mac OS X
  • Call graph: Outgoing calls are now always from the right side of the node
  • Call graph: Opening outgoing calls first opens the important nodes as configured in the view settings, only on the second click it opens all nodes
  • Clicking on edges in graphs jumps to the target node if invisible, Ctrl/Cmd+Click jumps to the origin node
  • Edges in graphs show tool tips if one or both nodes are invisible
  • Ctrl/Cmd+C in graphs copies text from the selected node or the tool tip text if no nodes are selected
  • Quick search in graphs
  • Undo/Redo actions for all changes to graphs
  • Call tree analysis for collapsing recursions
  • Call tree analysis for showing cumulated outgoing calls of a selected method
  • Call tree analysis for showing the backtraces to a selected method
  • Improved call tree filters to distinguish "compact" and "ignored" filters
  • Recording actions for probe events
  • Tool tips for telemetry views that snap to measured data points and show measurements for all data lines
  • Retina support on Mac OS X
  • "Set root" action in call tree now limits data in hot spots view and call graph
  • Support for MongoDB driver 3.x with both old and new API
  • Heap walker: It's now possible to retain finalizer references in the heap dump options, also the weak reference inspections can retain finalizer references
  • MBean browser: Always add "ObjectName" attribute
  • MBean browser: Show keys in MBean tree
  • MBean browser: Search now also works on folders
  • Show non-modal messages for "Run GC" and "Save snapshot" actions
  • HTTP splitting scripts and method splitting scripts can now be disabled
  • Implemented the "CPU load" telemetry for IBM VMs
  • Redesigned inspections view in the heap walker
  • Improved config of weak reference and stack reference inspections
  • Added "Case sensitive" and "Use camel humps" options for quicksearch, enabled by default
  • Bugs fixed:
  • Thread dumps view: Line numbers were not exported to HTML or copied to the clipboard
  • Improved detection of physical JDBC connections
  • Thread name changes were not tracked on Mac OS X with Java 7+
  • Very large reference graphs or call graphs graphs would block the UI when nodes were opened
  • Method graph was re-layouted when nodes were removed
  • Mac OS X: Repeated use of the right arrow key did not open the call tree along the line of the maximum performance impact
  • Call tree view filters did not work as expected in several ways
  • When using inspections, some views could be empty when going back in the heap walker browser history
  • Calling Controller.triggerHeapDump() and Controller.triggerThreadDump() when the agent is not loaded printed an exception instead of an error message
  • Overhead of MBean browser could be high
  • "analyze" and "export" ant tasks did not have attributes for deobfuscation
  • "analyze" ant task did not have options for selecting retained reference types
  • File probe did not work correctly with streams created before recording started
  • Regression in 9.0: "Recorded objects" and "All objects" views did not contain primitive arrays when viewed in a snapshot

New in JProfiler 9.0.2 Build 9053 (Jul 16, 2015)

  • New features:
  • Support for eclipse 4.5
  • Bugs fixed:
  • Regression in 9.0: Probe tracker stopped displaying new data after a few seconds
  • Timelines in probes could have missing data at the beginning
  • Accessing the MBean view while viewing a snapshot broke the UI
  • Fixed a rare deadlock when a thread with recorded probe events ended while a snapshot was being saved

New in JProfiler 9.0.1 Build 9047 (Jun 18, 2015)

  • Bugs fixed:
  • Regression in 9.0: Attaching to Windows services was broken
  • Fixed an NPE in the MBean browser
  • Custom telemetries: Errors were not cleared when the session was stopped and restarted
  • Custom telemetries: Script telemetry classes were not saved for offline profiling
  • Custom telemetries: Inner classes in script telemetries were not transmitted to the profiled JVM
  • HPROF heap dump in attach dialog: Existing files were not overwritten
  • HPROF heap dump in attach dialog: Windows services were not supported
  • HPROF heap dump in attach dialog: Could not attach to 32-bit 1.6 JVM

New in JProfiler 9.0 Build 9039 (Jun 9, 2015)

  • New features:
  • MBean browser
  • JavaScript XHR tracking from the browser into a profiled VM, with call tree splitting in the call tree view
  • Custom telemetries, featuring MBean attribute and script data sources
  • Multi-level HTTP call tree splitting, with freely configurable scripts
  • Method splitting in the call tree
  • HPROF heap dump option in attach dialog brings functionality of "jpdump" to the JProfiler GUI
  • Support PHD file format written by IBM Java 8 JREs
  • Heap walker: Added a "Stack referenced" inspection
  • Heap walker: Separate options for removing soft, weak and phantom references when taking a heap dump
  • Heap walker: Improved the "Weakly referenced objects" inspection with functionality matching the new selective weak reference removal for the heap dump
  • Heap walker: Added a view option "Show fields with null values in outgoing reference views"
  • Heap walker: Display retained reference types in the description of the initial object set
  • All scripts in JProfiler are now passed a "scriptContext" parameter that allows you to save state between subsequent invocations
  • "Remote attach" option for Quick attach, enabling remote attach for all IDE integrations
  • Improved view filters in call tree views with more filtering options
  • Thread dump view: Also record and display the thread status
  • The "direct calls" node in the call tree that is shown for sampling does not participate in percentage calculations anymore and is always shown last with a distinct icon
  • "All objects" and "recorded objects" views: Aggregate classes with the same name like in the heap walker
  • When using a config file to provide profiling settings from startup, it is no longer necessary to copy the "classes" directory with compiled JProfiler scripts
  • Bugs fixed:
  • Request tracking: Calls to executor methods could be too fast for microsecond resolution, in this case a call site method could be filtered and its information was lost
  • Heap walker: When searching for path to roots in the incoming references view, an "Expecting data" node could be left over after the operation
  • View filters in call tree views could not match unprofiled nodes
  • Eclipse integration failed if the previous eclipse installation directory was deleted
  • Eclipse and IntelliJ IDEA integrations: Source navigation did not always highlight the selected method
  • When using attach mode with sampling, the call tree could contain two separate Thread.run() nodes
  • During class unloading situations, wrong class names could be attributed to newly loaded classes
  • Fixed window size problems with multi-monitor setups on Linux
  • File->Open did not work for snapshots in IDEA 14.1
  • Fixed a race condition when recording probes together with sampling

New in JProfiler 8.1.4 Build 8176 (Mar 10, 2015)

  • New features:
  • Bundled integration for IntelliJ IDEA 14.1 (the newest IDEA plugin is always available in time from the IDEA plugin manager)
  • Bugs fixed:
  • Regression in 8.1.3: IDE integrations were broken on some Windows systems
  • Eclipse IDE integration failed if the previous eclipse installation directory was deleted
  • "Out of memory exception" trigger could not be edited
  • Fixed a crash while retransforming Java 8 Lambda classes

New in JProfiler 8.1.3 Build 8172 (Feb 26, 2015)

  • New features:
  • Heap walker: Reduced memory usage for the analysis of HPROF heap dumps
  • Heap walker: Opening heap dumps is now 5-25% faster
  • Bugs fixed:
  • Regression in 8.1: Exporting graphs to HTML did not work anymore
  • For SQL statements with embedded new lines, only the first line was shown in the JDBC hot spot view
  • jpanalyze utility: The "removeunreferenced" command line option had no effect
  • Heap walker: For some obfuscated heap dumps, cumulated incoming reference counts were not calculated correctly
  • Heap walker: Do not open many temporary files during the heap analysis. This fixes all "too many open files" problems on Mac OS X 10.10
  • Fixed UI problem in the recording profiles configuration on Mac OS X
  • The default location for some file choosers was the installation directory and not the user home directory

New in JProfiler 8.1.2 Build 8164 (Jan 21, 2015)

  • New features:
  • Bundled integration for IntelliJ IDEA 14 (the newest IDEA plugin is always available in time from the IDEA plugin manager)
  • Bugs fixed:
  • A very large amount of classes in the same package made snapshot opening slow
  • Fixed problem when opening snapshots with certain types of recorded monitors
  • Suggested directory for several IDE integrations was wrong on Windows

New in JProfiler 8.1.1 Build 8148 (Oct 22, 2014)

  • New features:
  • Added integration wizards for Tomcat 8.x, Coldfusion 11, Glassfish v4, WildFly 8.1 and Jetty 9.x
  • Bugs fixed:
  • Heap walker: If no path to a GC root was found, no warning message was shown
  • Workaround for length overflow in HPROF snapshots taken with older JVMs
  • If the session was terminated while a file dialog for saving a snapshot was displayed, the "Saving snapshot" progress dialog would hang
  • IDEA 13 integration was missing in 8.1
  • In some cases, the protocol version check between the profiling agent and the JProfiler GUI was broken
  • Could not use jpdump on JVMs that were already profiled

New in JProfiler 8.1 Build 8140 (Sep 26, 2014)

  • 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:
  • 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

New in JProfiler 8.0.7 Build 8077 (Jun 12, 2014)

  • 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

New in JProfiler 8.0.5 Build 8064 (Mar 28, 2014)

  • 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

New in JProfiler 8.0.4 Build 8057 (Feb 19, 2014)

  • 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

New in JProfiler 8.0.3 Build 8054 (Jan 14, 2014)

  • 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

New in JProfiler 8.0.2 Build 8045 (Dec 3, 2013)

  • 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

New in JProfiler 8.0.1 Build 8036 (Jul 31, 2013)

  • 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

New in JProfiler 8.0 Build 8022 (Jul 18, 2013)

  • 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

New in JProfiler 7.2.3 (Jun 21, 2013)

  • 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

New in JProfiler 7.2.2 (Jan 17, 2013)

  • New features:
  • Biggest objects view in the heap walker: Objects in "cutoff" nodes can now be selectedBundled 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-UXAttaching 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)
  • Fixed NPE in eclipse IDE integration

New in JProfiler 7.2.1 (Nov 16, 2012)

  • 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

New in JProfiler 7.2 (Sep 28, 2012)

  • 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
  • Support both hard-float and soft-float version of Linux ARM
  • 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

New in JProfiler 7.1.2 (Jun 18, 2012)

  • 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

New in JProfiler 7.1.1 (Jun 18, 2012)

  • 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

New in JProfiler 7.1 (Jan 26, 2012)

  • 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

New in JProfiler 7.0 (Jul 22, 2011)

  • 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

New in JProfiler 6.2 Build 6229 (Feb 14, 2011)

  • 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

New in JProfiler 6.1.4 (Feb 14, 2011)

  • 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)

New in JProfiler 6.1.3 (Feb 14, 2011)

  • Bugs fixed:
  • JProfiler could hang at startup without valid license (regression in 6.1.2)

New in JProfiler 6.1.2 (Jan 20, 2011)

  • 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

New in JProfiler 6.1.1 Build 6137 (Dec 21, 2010)

  • 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

New in JProfiler 6.1 Build 6133 (Oct 23, 2010)

  • 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

New in JProfiler 6.0.6 (Oct 23, 2010)

  • New features:
  • Full support for eclipse 3.6

New in JProfiler 6.0.5 (Oct 23, 2010)

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

New in JProfiler 6.0.4 (Oct 23, 2010)

  • 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

New in JProfiler 6.0.3 (Oct 23, 2010)

  • 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

New in JProfiler 6.0.2 (Oct 23, 2010)

  • 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

New in JProfiler 6.0.1 (Oct 23, 2010)

  • 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

New in JProfiler 6.0 (Oct 23, 2010)

  • 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

New in JProfiler 5.2.4 (Oct 23, 2010)

  • 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

New in JProfiler 5.2.3 (Oct 23, 2010)

  • 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

New in JProfiler 5.2.2 (Oct 23, 2010)

  • 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

New in JProfiler 5.2.1 (Oct 23, 2010)

  • 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

New in JProfiler 5.2 (Oct 23, 2010)

  • 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.

New in JProfiler 5.1.4 (Oct 23, 2010)

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

New in JProfiler 5.1.3 (Oct 23, 2010)

  • 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

New in JProfiler 5.1.2 (Oct 23, 2010)

  • 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.

New in JProfiler 5.1.1 (Oct 23, 2010)

  • 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

New in JProfiler 5.1 (Oct 23, 2010)

  • 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"

New in JProfiler 5.0.1 (Oct 23, 2010)

  • 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

New in JProfiler 5.0 (Oct 23, 2010)

  • 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.

New in JProfiler 4.3.2 (Apr 3, 2007)

  • 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