About the 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, LLC 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.
About YourKit Java Profiler 9.0
The version 9.0 will be the next release of YourKit Java Profiler.
See the change list below to learn about new features and changes
Download 9.0 EAP, build 5034 (February 4, 2010)
Download
Download
Download
You don't need a license key to use EAP build. Just install the build and use it.
Changes in build 5034
-
Memory profiling: UI: new feature: Class hierarchy slave view allows to see superclasses and extending classes for given class
-
Memory profiling: UI: new feature: Class list has new slave view "Class statics", which allows to quickly browse static fields and constant pool references of selected class
-
Memory profiling: UI: new feature: action "Memory | View Selected Objects Class" (also available in popup menus)
opens classes (
java.lang.Classinstances) for selected object(s) -
Probes: new built-in probe Threads monitors some aspects of thread life cycle:
-
where (frame/thread) and when thread objects (instances of
java.lang.Threador its subclass) are created -
where (frame/thread) and when threads are started (
Thread.start()invoked) -
where (frame/thread) and when thread name is changed (
Thread.setName()invoked)
In particular, this can help finding problems such as:
- threads created but not started
- thread naming issues
-
where (frame/thread) and when thread objects (instances of
-
Probes:
built-in probe Servlets improved:
added monitoring of
javax.servlet.Filter.doFilter()method. In particular, this will provide useful results if Apache Tapestry framework is used. -
Probes: scalability improvements.
Added ability to limit the number of probe table rows to be recorded in the profiler agent and processed in the profiler UI.
This is not a final solution. Upcoming builds will provide extended capabilities to customize agent data collection policy, as well as UI means to effectively access tables with big number of rows.
-
In profiler agent: startup option
limits the number of rows to be stored by the profiler agent per table. If a table reaches the limit, it will no longer be populated. Default value is 10000.probetablelengthlimit=<number of rows> -
In profiler UI: property
limits the number of rows which the profiler UI reads for each table when a snapshot is loaded or a running application is being profiled. Specify the property in:-Dyjp.probe.table.length.limit=<number of rows>-
Windows:
<Profiler Installation Directory>\bin\win32\yjp.ini -
Linux, Solaris, FreeBSD, HP-UX:
<Profiler Installation Directory>/bin/yjp.sh -
Mac OS X:
<Profiler Installation Directory>/Contents/Info.plist
By default, 10000 rows are loaded.
-
Windows:
-
-
IDE integration: improvement: it is now possible to specify in the plugin UI whether a 32-bit Java or a 64-bit Java is used to launch profiled application, in order to choose appropriate profiler agent. Previously, it was required to re-run IDE integration wizard to change the JVM kind. Also, it is now possible to choose Java kind per run configuration in IDEs which provide such capabilities (Eclipse, IDEA). See tab "32-bit or 64-bit Java Selection" in the plugin configuration UI.
For example, see how the configuration looks in Eclipse:
... and in NetBeans:
Of course, IDEA and JDeveloper are also supported.
- UI: Summary tab: available system properties are shown for Android HPROF snapshots (see changes in build 5032)
- Problem solved: JRockit: improved handling of incorrect data provided by JRockit JVM under some rare circumstances, which could lead to crashes on memory snapshot capture. JRockit R27.5.6 is affected. It is possible that earlier versions of JRockit are also affected.
Changes in build 5032
- New feature: ability to export basic snapshot views to *.csv, *.txt, *.html via a command line tool. For detail, see "Export with command line tool" here.
-
Quick info:
improvement: an option to see non-filtered stack traces
-
New feature: ability to open Android HPROF snapshots,
converted to standard format with Android's
hprof-convutility
Changes in build 5030
- Probes: Built-in probe Sockets monitors stream-based and channel-based socket I/O, instead of previously used 2 separate probes. This improves presentation of results.
- Probes: UI: bug fixed: under certain circumstances, dependent (lower) table row count might be incorrectly shown in master (upper) table column. In particular, this bug affected built-in probe Databases.
- Improvements in samples scripts
Changes in build 5028
- New platform supported: HP-UX. Running profiled applications and/or the profiler UI is now supported on HP-UX on IA64 architecture. Both 32-bit and 64-bit JVMs are supported.
- Probes: Improvements in built-in probes FileStreams, FileChannels and RandomAccessFiles. File access via NIO channels is now registered in corresponding tables for file input streams, file output streams and random access files. This improves presentation of results.
-
Solaris:
yjp.shautomatically starts the profiler UI with a 64-bit JVM if it is available - UI: Summary tab: new feature: list of all system properties is available ("System properties")
-
Non-Windows: improved diagnostic on attempt to start
yjp.shwith an outdated Java version -
API:
return type of
com.yourkit.api.MemorySnapshot.getShallowSize()changed frominttolong
Changes in build 5026
- Memory profiling: HPROF snapshots: object shallow sizes are calculated more accurately, taking into account some tricky cases of field alignment in memory. Note: if HPROF snapshot has index file created with an earlier version of the profiler, remove or re-create the index file.
-
Improvement: J2EE Statistics:
an option to show/hide calls whose execution took less than 1 ms
- Bug fixed: fixed issue which might prevent successful startup of profiled application running on some builds of IBM Java 6 (e.g. WebSphere)
- Java 7 support: problem fixed: improper instrumentation of classes with new INVOKEDYNAMIC opcode
- UI: Summary tab: improvement: Java version is shown with all available VM detail
Changes in build 5024
- Probes: probe registration or unregisteration in runtime is dramatically faster now. As most probes are applied to limited set of classes (all built-in probes are such), registration or unregistration should complete almost immediately for them.
- Optimization: bytecode instrumentation improvements
- Problem fixed: applications using scala might fail starting with the profiler, due to some odd bytecode patterns generated by scala compiler
Changes in build 5022
- Probes: ability to register and unregister probes in runtime. See "Manage Probes" in the right upper corner of the "Probes" tab when connected to profiled application.
- Probes: "Timeline" view: new popup menu action "View in Table" navigates to row in its table
- IDE integration: NetBeans 6.8 (release) supported
- J2EE integration: GlassFish 3 supported
- J2EE integration: improved profiling of applications running inside an OSGi container: there is no need to manually twick OSGi settings anymore to allow loading of the profiler classes
Changes in build 5018
- Probes UI: improvements and fixes. In particular, full stack trace can be seen by clicking corresponding hyperlink.
- Bug fixed: NetBeans: it was not possible to activate some profiling modes from startup under certain circumstances
Changes in build 5016
- Mac OS X: CPU tracing: native methods are included to the profiling results
Changes in build 5014
- Memory profiling: improvement: thread, stack and local variable name information will be available for "Stack local" roots even if profiled application runs with debugger. In previous versions, this information was not available running with debugger.
-
Memory profiling: problem solved: thread name was not shown for
some thread objects (i.e. instances of
java.lang.Threador subclasses) in reference explorers - Mac OS X 10.6: problem fixed: profiled application might not start if its process identifier (PID) was bigger than 65536
- Bug fixed: simultaneous running version 9.0 and version 8.0 profiler UIs might lead to incorrect detection of locally running profiled applications on Welcome screen
Changes in build 5012
-
UI: new feature: table columns are resizeable, and if column content does not fit, a scroller appears. Also, wide tables are scrollable themselves, like tables in spreadsheet applications.
This dramatically improves usability working with Probes results.
Another view to mention which will greatly benefit from this feature is Threads where very long thread names will not be cut off anymore.
-
New feature: profiler agent log is written to file
<user home>/.yjp/log/<PID>.loginstead ofstderr. Successfully started agent writes tostderronly the following line:This line can be suppressed using startup option[YourKit Java Profiler <version>] Loaded. Log file: <full path to the log file> 'quiet'.With this new approach, the profiler agent log messages are easier to find if profiled application redirects its output to own log files or filters it, and will not be lost if the output goes directly to console, or if there is no console at all if the profiled application runs as a service. Also, the profiled application's output and its own log files are not cluttered with extra messages.
- Probes: added utility class com.yourkit.probes.builtin.Messages which provides a method to store arbitrary text messages. They will be shown in "Probes" tab as "Messages" (the name of corresponding table).
- Improvement: profiler events such as switching profiling modes, starting/stopping profiling, capturing snapshots etc. are now logged to the log file, as well as are available in "Probes" tab in "Messages" table (categories "Profiler" and "Profiler UI")
Changes in build 5010
-
Improvement: Filters:
now it is possible to combine exclusive and inclusive patterns,
i.e. to specify classes which must be filtered as well as classes which must not be filtered.
In the latest case, prepend the pattern with "+".
For example,
org.apache.*,+org.apache.jsp.*will filter out Tomcat internals, but will not filter classes of particular JSP pages, which Tomcat generates in packageorg.apache.jsp. - New feature: profiled applications can run on Java 7 too
- Mac OS X: improvement: memory snapshots contain values of primitive types
-
Probes: changes in API class
com.yourkit.probes.Table
Changes in build 5006
- Probes: UI: added action to focus on events intersecting with given event or group of events. To invoke, please use popup menu. For example, you can select particular servlet request, and see related events in other tables: database, file I/O etc.
- Probes: Timeline view shows sequence of events from different tables, allowing to analyse nested events. Use popup menu in upper tables to select corresponding row in the Timeline.
- Probes: added built-in probe for JSP/Servlets
Changes in build 5002
- Probes: UI: ability to view full stack traces for selected row (use popup menu)
Changes in build 5000
-
New feature: Probes: extendable profiling and monitoring. Get almost unlimited capabilities to analyze issues specific to your particular application, as well as automatically recognize problems typical to wide range of applications. Read more...
Currently available builds contain only small part of planned Probes functionality. Anyway, it is functional enough to get familiar with the concept of the Probes and to be used in solving real problems. Upcoming builds will provide more features and improve existing ones.
- Only applications running on Java 6 or newer can be profiled. New functionality provided by this version of the profiler requires Java 6 APIs which are not available in earlier Java versions. For profiling Java 5 applications, please use the latest released version 8.0 of the profiler.
-
Improved Welcome screen. "Monitor Local Applications" panel provides an option to see all Java applications running on the machine, including those not started with the profiler agent. This greatly helps troubleshooting possible connection problems.
- New feature: "Settings | Snapshot Directory..." allows to configure snapshot directory location. Read more...
- New feature: ability to capture HPROF snapshot with JVM built-in dumper is now available on Mac OS X too
- Mac OS X: improved desktop integration: ability to open exported files

