Fully featured low overhead profiler for Java EE and Java SE platforms.
Monitoring and profiling solution for Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

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 2018.04 EAP

Build #54, released on April 19, 2018

Windowsx86, x64 Download and run installer
macOSIntel Download disk image
Linux
x86, x64, ARMv5, ARMv7, AArch64, ppc, ppc64, ppc64le
Download and unpack ZIP archive
Launch bin/profiler.sh
SolarisSPARC, x86, x64
HP-UXIA64
AIXppc, ppc64
FreeBSDx86, x64


Changes in build 54

  • Bug fixed: attach didn't work on macOS

Changes in build 53

  • Improved auto-scrolling to selected thread in "Threads" view.
  • Refinement of "Welcome" screen layout.
  • Bug fixes and performance improvements.

Changes in build 51

  • Better filtering of development tools in "Monitor Application" section on "Welcome" screen
  • Bug fixes

Changes in build 50

  • [new] IDE integration: IntelliJ IDEA 2018 supported
  • [new] Dedicated docker zip now includes the agent for ppc64le too
  • [new] Horizontal scrolling with mouse wheel and two fingers gesture in telemetry graphs
  • [regression] Tracing was broken in attach mode
  • Bug fixes

Changes in build 48

  • Java 10 supported
  • Welcome screen: all possible actions enabling different profiling scenarios are available in one place under the section "Get Started with Profiler"
  • Welcome screen: local and remote profiling applications are shown in real time in the section "Monitor Applications"
  • Remote profiling: added ability to attach the profiler agent to a remote Java process started without the profiler agent directly from the profiler UI
  • Remote profiling: multihop SSH tunnels: the remote connection dialog allows to set up an SSH tunnel through any number of intermediate machines
  • Simplified and improved profiling in Docker containers:
    • dedicated compact download bundle containing only files needed in docker reduces container size and build time
    • agent dependencies on glibc relaxed, which is important for Apine Linux based containers
    • new dedicated Help topic provides step by step instructions on how to profile in a container
  • New feature: Threads view now shows per-thread CPU usage graphs
  • Threads view: to improve visibility, thread header elements are vertically aligned
  • Threads view: ability to see the stack trace for particular event
  • Threads view: ability to change scale
  • Telemetry: new graph scaling option "Fit to Width"
  • Searchable stacks in telemetry
  • CPU HPROF dumps supported. The profiler is now able to open HPROF dumps with CPU samples which are produced by running java -agentlib:hprof=cpu=samples,format=b <...> or java -Xrunhprof:cpu=samples,format=b <...>
  • UI: stacked hints and messages
  • UI: reworked IDE integration
  • UI: reworked local server integration
  • Improved stack trace presentation in different views: quick info, deadlocks, etc.
  • If the user allows, the profiler now may collect anonymous UI usage statistics to help YourKit improve user experience in future versions
  • Startup option port was extended to allow a specification of a port range too. The syntax is port=<min_port>-<max_port>.

    Also, the remote connection dialog now allows to specify the remote agent port range.

  • Agent: improved control of the profiler agent connectivity options. The startup option listen has been extended.
    • Most security, the default option: listen=localhost binds the profiler agent socket to localhost only. This will disable a direct remote connection to the agent via <host>:<port>. Connection to the profiler agent will be possible via port forwarding e.g. an SSH tunnel.
    • Easy access: listen=all opens the profiler agent socket on all network interfaces. A remote connection to the agent will be possible directly via <host>:<port>. Note that access to the port can be additionally restricted with a firewall.
    • Advanced: listen=<IP or host>[:<port>] binds the profiler agent socket to particular network interface
    Please note that listen=localhost is now the default (the old default was equal to listen=all), and option onlylocal is deprecated.
  • macOS: the profiler is now distributed as .dmg bundle
  • macOS: JetBrains Open JDK for is bundled to improve UI quality, e.g. font rendering
  • macOS: .snapshot files associated with the profiler application
  • macOS: prevent the automatic switching to the discrete GPU if the machine has multiple GPUs
  • macOS: on-screen menu bar for Dark theme too
  • Improved Linux desktop support: *.desktop file is provided
  • Linux x64: JetBrains Open JDK for is bundled to improve UI quality, e.g. font rendering
  • HP-UX: agent detection improved
  • Profiler UI now may run on Java 9 too, although we still recommend to run it on Java 8
  • UI: a hint panel for a slave view can be hidden
  • Attach: gracefully handle inability to attach to IBM Java. The profiler now shows appropriate error messsage to the user on attempt to attach to an IBM Java process started without the agent. This operation is still impossible due to lack of capabilities in IBM JVM, and IBM Java can be profiled only by starting with the agent.