Fully featured low overhead profiler for Java EE
and Java SE platforms.
Overview & Features Download Buy & Upgrade
Easy to use performance and memory profiler for .NET framework.
Supports ASP.NET, Silverlight, .NET Windows services and more.
Overview & Features Download Buy & Upgrade

Early Access Program

YourKit Early Access Program (EAP) is the easiest way to get in touch with the latest technologies from YourKit. You can have early access to new products and internal builds.

NOTE: THIS IS PREVIEW SOFTWARE AIMED AT PROVIDING YOU WITH AN OPPORTUNITY TO TEST THE NEWEST FEATURES SCHEDULED FOR THE NEXT MAJOR RELEASE. YOURKIT DOES NOT GUARANTEE THAT THIS SOFTWARE WILL RUN TROUBLE-FREE. USING THIS SOFTWARE IS AT YOUR OWN DISCRETION AND DOES NOT ENTITLE YOU TO ANY CUSTOMER SUPPORT.

Feedback

Your comments, suggestions and bug reports are welcome. In the forum you can discuss product features with YourKit developers and post bug reports.

YourKit Java Profiler 2016.06 EAP

Build #23
Released on September 15, 2016
This is a preview of the next release of YourKit Java Profiler.

See change list

Windows (x86, x64) Download and run installer
Mac OS X (Intel) Download and unpack zipped application
Linux
(x86, x64, ARMv5, ARMv7, AArch64, ppc, ppc64, ppc64le)
Download and unpack ZIP archive
Launch bin/yjp.sh
Solaris (SPARC, x86, x64)
HP-UX (IA64)
AIX (ppc, ppc64)
FreeBSD (x86, x64)


Changes in build 23

  • New feature: ability to expand particular filtered branch in call tree views

Changes in build 22

  • Memory profiling: if property -Dyjp.alternate.temp.dir=<directory> is specified it is also respected while calculating the dominator tree which is performed a memory snapshot is being loaded
  • Bug fixed: assertion might fail when opening a small memory snapshot

Changes in build 21

  • Toolbar: new button to clear recorded object allocations and continue recording
  • Agent: bug fixed: when running CPU tracing in attached mode, event stack traces might miss method calls
  • Attach mode: the initial pause significantly decreased by not automatically marking an object generation

Changes in build 20

  • IDE integration: IntelliJ IDEA 2016.3 supported
  • Agent: to reduce profiling overhead in profiled applications running many threads, the automatic deadlock detector can be turned off by specifying the startup option deadlocks=off (implied by disableall)
  • Improvement: native thread ID is now shown as a decimal number instead of hex. Also, the ID was improperly obtained on Windows and Mac OS X: an internal system call ID was used instead of a "presentable" thread ID that can be found in system logs or seen with the platforms' specific tools.

Changes in build 19

  • UI: action "Show in File Manager" introduced in the previous build 18 now supports more Linux desktops including KDE Plasma
  • Windows installer: NSIS version upgraded

Changes in build 18

  • Object explorer: class-specific object presentation: color components (red/green/blue/alpha) as well as the color itself are presented for instances of java.awt.Color
  • Object explorer: class-specific object presentation: java.time.* supported
  • UI: "Open Containing Folder" action superseded with actions "Show File in Explorer" on Windows, "Show File in Finder" on Mac OS X, and "Show in File Manager" on other platforms.
  • Agent: optimization: reduced overhead in profiled applications intensively starting new threads
  • Agent: web interface: new action "Dump Threads"

Changes in build 17

  • Windows: the profiler agent library yjpagent.dll is digitally signed.

Changes in build 16

  • Optimization: up to 30% improvement of memory snapshot loading time on multiprocessor machines
  • CPU tracing result accuracy increased in some corner cases thanks to improved time measurement algorithms
  • HP-UX: improvement: the profiler agent now uses intrinsic atomic operations

Changes in build 15

  • Remote profiling: bug fixed: the profiler might not always detect situations when the profiled application restarted and continued to listen on the same agent port, erroneously treating the profiling results coming from the new instance as belonging to the old instance. As the result, different sorts of data inconsistencies might arise.

Changes in build 14

  • Memory profiling: new inspection "Classes with same name" finds identically named classes loaded in multiple class loaders
  • Memory profiling: object explorer: class loader and, if available, web application information is immediately shown for instances of java.lang.Class
  • "Memory | View Method By Name..." and "CPU | View Method By Name..." actions (Ctrl+Shift+N): currently selected method is now preselected in the chooser popup
  • Other bug fixes

Changes in build 13

  • New feature: ability to clear the telemetry charts. There is a new toolbar button (3rd from the right), new profiler API method com.yourkit.api.Controller.clearCharts(), and a new command line tool command.

Changes in build 12

  • Export: improvement: size of generated HTML files significantly reduced
  • Memory profiling: API: set description language: added new tags to describe objects of particular reachability scopes: <strong-reachable/>, <weak-soft-reachable/>, <pending-finalization/>, <unreachable/>

Changes in build 10

  • Threads view: new column "Started" shows thread start times. Sort by this column to present threads in the order of their appearance.
  • Threads view: new state "Waiting in native" is shown for some known methods instead of "Running" which is reported for them by the JVM
  • Memory profiling: object explorer: key and value are immediately shown for map entries. Also, the action "Open map keys, values, entries in a new tab" available for map objects now by default offers to open entries, not keys.
  • Memory profiling: object explorer: empty strings are indicated with "" to distinct them from strings with unknown content for which no text is displayed. Previously, there was no text shown in both cases. Note: the content is unknown for unreachable strings in *.snapshot files. This is due to a limitation of the JVM's JVMTI profiling API that provides no access to reference fields of unreachable objects. There is no problem for HPROF snapshots.
  • Memory profiling: new action "Memory | Objects by Field Value... (Ctrl+Shift+F)" opens in a new tab objects having particular field values. This allows to find objects of interest among e.g. many other instances of a class. You can specify the field name and exact value or its minimum and maximum value limits. The action can work with all snapshot objects or with objects presented in a current tab.
  • New startup options to control exception telemetry have been introduced:
    • exceptions=on enables exception events in the JVM and immediately starts recording the exception telemetry. This is the default mode on non-IBM JVMs (Sun/Oracle HotSpot, OpenJDK, JRockit).
    • exceptions=off enables exception events in the JVM but does not immediately start recording the exception telemetry that can instead be recorded later in runtime.
    • exceptions=disable fully disables exception events in the JVM to totally eliminate corresponding overhead. This is the default mode on IBM JVMs because the overhead is significant.
    Caveat: in previous versions of the profiler the startup option disableexceptiontelemetry, being specified explicitly or implied with disableall, worked for the non-IBM JVMs as the newly introduced option exceptions=off. Now disableexceptiontelemetry is an alias of exceptions=disable.
  • IDE integration: Eclipse and IntelliJ IDEA: if multiple projects are opened in the IDE, the "Open in IDE" action opens the symbol in appropriate one by matching the IDE's project name. This works for applications started from within the IDE with the "Profile" action, as well as for captured snapshots of such applications.

    Note: Eclipse plugin repository URL for this EAP is http://www.yourkit.com/download/yjp2016_06_for_eclipse/