Products
 
 
 
Fully featured low overhead profiler for Java EE
and Java SE platforms.
Easy to use performance and memory profiler for .NET framework.
Supports ASP.NET, Silverlight, .NET Windows services and more.
The Industry Leader Among Profiling Tools

CPU and memory profiling has never been easier, and smarter at the same time. YourKit has developed a revolutionary approach to profiling applications at both development and production stages, bringing unparalleled benefits to professional Java developers.

Ready for your tasks
Profile any SE or EE application, server, technology and framework; on multiple platforms; locally and remotely; in development, testing and production. For teams and companies of any size.
Comprehensive, Fully featured
All-in-one profiler utilizes all of the advanced Java profiling features and capabilities.
Easy and User-friendly
Straightforward installation process, with the most reasonable defaults; seamless integration with popular IDEs and application servers; minimum extra configuration.
Powerful and Intelligent
YourKit goes far beyond a traditional profiler's capabilities by offering high-level results and advanced, unique automated analysis.

Profile anywhere

You can profile any application running on the JVM, on various platforms.

  • Any kind of application: Java SE, Java EE, WebStart, applet
  • Any framework and technology: EJB, JDBC, JSP/Servlets, Struts, Hibernate, etc.
  • Pure Java as well as JVM languages such as Scala, JRuby and others
  • All popular operating systems:
    • Windows (x86/x64)
    • Mac OS X (x86/x64)
    • Linux (x86/x64, ppc/ppc64, ARM)
    • AIX (ppc/ppc64)
    • Solaris (SPARC, x86/x64)
    • HP-UX (IA-64)
    • FreeBSD (x86/x64)
  • All popular JVMs:
    • Sun/Oracle HotSpot
    • OpenJDK
    • IBM Java
  • Local and remote profiling

Enterprise-ready

  • Profile any EE server:
    • Tomcat
    • JBoss
    • WebLogic
    • WebSphere
    • GlassFish
    • Jetty
    • Geronimo
    • JRun
    • ...and any other
  • Any framework and technology: EJB, JDBC, JSP/Servlets, Struts, Hibernate, etc.
  • Easily enable profiling with the integration wizard, which supports all popular servers, as well as offers the "Generic server" option for any other server
  • Local and remote: easily profile servers running on developer machine as well as on a remote server, including production
  • Built-in SSH tunneling support simplifies profiling in restricted network conditions
  • Fully controllable profiling overhead
  • Permissive license policy allows unlimited number of profiled applications
  • High-level profiling results to see the big picture and low-level detail to pinpoint issues
  • Deobfuscation support: profiler restores original class, method and field names of applications obfuscated with RetroGuard, ProGuard, yGuard, Zelix KlassMaster, Allatori if you provide corresponding obfuscation log

Local and remote profiling

Profile a remote application as easily as a local one:

  • Remote EE server integration wizard enables profiling in a console mode
  • Remote attach wizard
  • Built-in SSH tunneling support simplifies profiling in restricted network conditions

Controllable overhead

  • Full control of imposed profiling overhead by using appropriate startup options and utilizing profiling modes on demand
  • Minor overhead by default: all profiling activities which may cause noticeable overhead are off unless you explicitly turn them on
  • EE server integration wizard suggests even stricter default limitations for production use

Affordable, permissive licensing

  • Flexible commercial licensing model: per-seat, floating, enterprise
  • Multi-platform and multi-processor licensing
  • Fair and cost effective: great volume discounts; licensed are profiler client copies, with unlimited profiler agent copies to profile as many applications or servers as you need, in development, testing or production stages - forget the greedy per-CPU licensing
  • Free embedding into production: distribute the profiler agent with your real-world commercial applications free of charge, to ease your product maintenance and improve your customer support.
  • Special offerings to academic and scientific use
  • Open source project developers and maintainers may apply for a free license

Profiling is easy

  • Easiest installation and configuration
  • EE server integration wizards
  • IDE support allows you to Profile applications from within Eclipse, IntelliJ IDEA, NetBeans, JDeveloper just like you Run or Debug
  • Attach mode allows on-demand profiling of JVM instances started without the profiler agent
  • If necessary, manually enable profiling of your application by adding a single JVM command line option; no need to tweak classpath etc.

Developer friendly environment

Profile from within your integrated development environment (IDE):


CPU profiling - investigate performance issues

  • CPU usage graph showing total, kernel and garbage collector times is always available
  • Choose from available profiling modes -- tracing, sampling, call counting -- to balance between result accuracy and fullness and profiling overhead
  • Alternatively, estimate CPU usage retrospectively, basing on recorded thread telemetry data
  • CPU tracing's adaptive mode automatically controls profiling overhead, user no longer needs to explicitly choose filters to exclude methods from profiling as other profilers require
  • CPU views present results as call trees, hot spots, method lists, back traces, merged callees and callees lists
  • High-level profiling available: SQL calls, web requests
  • What-if feature: to concentrate on what's most important, you can exclude particular method calls from the profiling results, or focus on particular calls only
  • Compare snapshots to see what's changed

Memory profiling - memory leaks, usage, GC

  • Memory usage graphs show heap and non-heap memory pools, GC activity and, if recorded, object creation rate per-second
  • Comprehensive heap inspection and analysis
  • Object allocation recording to solve garbage collection and memory allocation issues. Available settings allow to balance between result fullness and profiling overhead. In particular, consider the unique object counting mode with almost zero overhead.
  • The richest UI to analyze memory usage and find memory leaks
  • Paths from roots to analyze memory leaks and object retention, with the ability to immediately see what would happen if particular references were excluded (i.e. to test a proposed memory leak fix effect without re-running the application)
  • Find objects holding most memory with dominator tree and class list
  • Dissect objects by category, on and on:
  • Object explorer to inspect individual objects
  • Garbage collection profiling to estimate garbage collector load, and, if garbage collection takes a significant amount of time, pin-point the problematic code
  • Automatic inspections detect typical problems. Performing this type of analysis by hand would be a very complicated (if at all possible) task.
  • Support of HPROF binary format snapshots and the JVM built-in heap dumper
  • Ability to export the profiler format memory snapshots to HPROF binary format for processing with 3rd party tools
  • Set description language to use in automated memory tests

Threads, monitors, exceptions


High-level results

  • Event recording: in addition to low level profiling results such as method calls, the profiler can record higher level events with their essential properties such as database queries, web requests and I/O calls. Use built-in probes to recognize typical problems or write your own to inspect specifics of your particular application.
  • Performance charts show basic and higher-level telemetry graphs of web, database, I/O activity.

Powerful analysis capabilities

  • Immediately see profiling results as they come, in real time
  • Capture a snapshot for a more sophisticated analysis, to save the results for history records, share them
  • Compare performance or memory snapshots to see what's changed
  • Lightweight basic telemetry graphs are always available. Very useful and unique feature is that the recent telemetry results are remembered inside the profiler agent. This allows you to connect to the profiled application on demand, being able to discover how the application behaved in the past.
  • Automatic inspections detect typical problems. Performing this type of analysis by hand would be a very complicated (if at all possible) task.

Automated profiling

In addition to the rich UI capabilities for interactive profiling, profiling can also be conducted semi- or fully automatically.

  • Startup options to immediately activate desired profiling modes
  • Triggers to perform actions on events such as particular method call or a monitored value reaching its threshold
  • Probes to execute arbitrary code on invocation of particular methods
  • API to control profiling of this or another application: switch profiling modes and store profiling results
  • Command line tool to perform some profiling tasks without using the UI

Export to external formats

In addition to the rich analysis capabilities of the profiler, the profiled results can be exported to external form to process with 3rd party tools or share with those not having the profiler.

  • export to XML, HTML, CSV, plain text
  • export from UI
  • export automatically via a command line tool
  • export memory snapshots in the profiler format to widely recognized HPROF binary format
  • in tables and graphs, selected result text can be copied to clipboard

What's new
April 2, 2015
YourKit Java Profiler 2015 released
YourKit Profiler 2015 for .NET released
Awards
JDJ Editors' Choice Award Winner YourKit Java Profiler received the Java Developer's Journal Editors' Choice Award.
Customers