Vladimir has posted 7 posts at DZone. View Full User Profile

YourKit Java Profiler 10

09.26.2011
| 2206 views |
  • submit to reddit

YourKit, LLC is glad to announce immediate availability of YourKit Java Profiler 10

It can be downloaded at http://www.yourkit.com/download/

MOST NOTABLE CHANGES AND NEW FEATURES:
======================================

NEW FEATURE: TRIGGERS:

  Configure actions to be automatically performed on following events:
    - execution of particular method;
    - high CPU usage;
    - high memory usage;
    - out of memory exception;
    - JVM start;
    - JVM exit;
    - timer.
  Possible actions:
    - log events to console, file, agent log or data storage as probes do;
      there is a rich set of macros to be used to form the logged message;
    - control profiling;
    - capture snapshots.

MEMORY PROFILING:

  - New feature: allocation recording can gather the garbage collector statistics
    per class, i.e. it not only shows thread and stack where the collected objects
    were created, but also their classes.
  - New feature: memory snapshots of applications running in the compressed strings
    mode (-XX:+UseCompressedStrings) are supported
  - New feature: added ability to open memory snapshots as performance snapshots,
    i.e. to load all profiling data except for the heap content;
    this feature helps working with huge memory snapshots.
  - Improvement: Merged paths view speed-up
  - Improvement: simplified browsing of sparse arrays: the configurable number of
    array elements shown in object explorer now includes only non-null elements.

CPU PROFILING:

  - Wall time settings format has been changed to accept human-readable method parameter
    lists instead of cumbersome JVM method signatures
  - CPU tracing calibration accuracy improved
  - Improvement: the number of recently finished threads for which CPU sampling,
    CPU tracing and monitor profiling results are kept is now customizable (50 by default).

  (See also related changes in the User Interface category below.)

TELEMETRY:

  - New feature: ability to filter "Threads view" by method pattern.
  - CPU usage estimation provides an option to account samples in either all threads
    in the selected range or only in those matching the thread and method filter
  - CPU usage and time spent in garbage collector are shown on the same graph,
    indicating CPU usage peaks caused by the garbage collector activities
  - Memory usage telemetry: G1 GC per-pool usage graphs reordered,
    placing eden generation graph to the top and the old generation graph to the bottom
  - More graph scale gradations available
  - Bug fixed: exceptions tree collapsed on each update

PROBES:

  - New feature: added built-in probe to monitor execution of JUnit tests
  - New feature: added annotations @ClassRef, @MethodName, @MethodSignature,
    @MethodParameterTypes to identify instrumented methods
  - New feature: ability to apply probe to classes and/or methods with particular
    annotation
  - Built-in probe AWTEvents: detection of problematic invokeLater() and invokeAndWait()
    calls has been streamlined by logging the class of InvocationEvent's Runnable
  - Added special column kind ClassNameColumn to store class names improving UI experience
  - @This can be used in onEnter() when instrumenting constructors
  - Constructor method name is now specified as "<init>" which allows monitoring
    constructors of several classes with a single probe
  - UI: "CPU usage estimation" action can account samples in all threads or in appropriate
    threads only
  - "Anonymous threads" inspection now also detects threads with name
    "pool-<number>-thread-<number>" produced by the default thread factory of
    java.concurrent
  - "Anonymous threads" and "Threads with non-unique names" inspection results are grouped
    by thread creation stack trace

IDE INTEGRATION:

  - Eclipse: added ability to profile J2EE server from within the Servers tab
  - Eclipse: run configuration "J2EE Preview" supported
  - Eclipse 3.7: server profiling supported
  - Eclipse: added ability to profile configurations created via GlassFish Server Tools
    plugin. Note: due to a bug in GlassFish Server Tools, it requires that TPTP is installed.
  - MyEclipse: plugin improvements and bug fixes
  - NetBeans 7.0 supported. The oldest supported NetBeans version is now 6.7.1
  - JDeveloper 11.1.2 supported
  - JDeveloper: bug fixed: "Open Declaration in IDE Editor" action might not work

USER INTERFACE:

  - New popup menu item "Fully Expand Node" in call tree and back traces views
  - Added ability to explicitly specify file name when capturing a snapshot
  - Added ability to specify startup options in attach mode
  - Improved logic of own-value columns (own time in CPU view; own count and size in
    object allocation and garbage collection views)
  - Ensured consistency of results shown in different views for filtered methods which
    are called from both other filtered methods and from non-filtered methods
  - UI better fits low resolution displays
  - Customizable number of levels automatically expanded in trees when clicking [+]
    or using arrow key
  - Performance of trees slightly improved
  - Bug fixed: merged call tree might not be fully shown depending on applied filters
  - Bug fixed: Mac OS X: text in selected rows in some table columns had color almost
    indistinctive from the background
  - Bug fixed: Mac OS X: progress and other popup window repaint issues

MISCELLANEOUS:

  - Added AIX support (ppc and ppc64)
  - Added Linux 3.x kernel support
  - New feature: advanced transfer of remote snapshots
  - Improvement: simplified profiling of OSGi applications in attach mode,
    in particular, GlassFish 3
  - Added support of class files with Java 7 constant pool entries
  - Filters: added ability to include or exclude not only entire classes or packages,
    but also particular methods
  - Agent: improved reliability: if profiled application contains a broken class file,
    the bytecode instrumenter will not fail by assertion.
    Instead, it will write the error to the agent log file and let the JVM normally handle
    the problem by throwing the class verification error.
  - Agent: bytecode instrumentation: improved handling of StackMapTable attribute
  - Agent: optimization: native methods from JVM internal class sun.misc.Unsafe
    are not wrapped for instrumentation, to avoid overhead in applications actively using
    them
  - Agent: other improvements
  - Agent: bug fixed: multiple profiled applications started one by one with
    little pause in between might fail due to a non-synchronous access to temporary file
  - IBM Java: problem solved: wrapping native methods of java.security.SecurityManager for
    CPU tracing might produce incorrect class context
  - Export: added ability to export in XML format
  - Export: improvement: export to CSV generates "Level" column when exporting trees

See complete list of changes at http://www.yourkit.com/changes/

Best regards,
YourKit Team

0
Published at DZone with permission of its author, Vladimir Kondratyev.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)