I tried YourKit Profiler 5.0, and it was great. It is easy to use and to integrate with various IDEs. But profiling CPU usage for short-term running applications will require you to change some options.
---------- 전달된 메시지 ----------
Date: Tue, 01 Nov 2005 14:07:50 +0300
Subject: YourKit Java Profiler 5.0 Released
We would like to inform you that Yourkit Java Profiler 5.0 has been released.
It can be downloaded at http://www.yourkit.com/download/
Changes in version 5.0 from 4.0:
New and improved platform support
* New: 64-bit Java on Windows X64 (AMD64) supported
* New: 64-bit Java on Linux AMD64 supported
* New: 64-bit Java on Solaris SPARC supported
* New: 64-bit Java on Solaris AMD64 supported
* Mac OS X 10.4 "Tiger" Java 5.0 / JVMTI support
* Mac OS X: "Aqua" Look and Feel
* Mac OS X: screen menu bar
* Mac OS X: adapted keymap
* Mac OS X: other UI improvements
* This new feature, available when a profiled application runs on Java 5.0 and higher,
allows viewing key information about an application in runtime within live graphs,
providing details about memory, garbage collection activity, loaded classes, threads,
as well as JVM and OS information.
* Telemetry information for some recent time period is remembered inside the profiler agent.
This allows to connect to profiled application on demand, being able to discover how the
application behaved in the past.
* Telemetry information can be saved to a file and later re-opened in the profiler UI.
* New feature "Biggest objects" automatically shows the list of objects with biggest retained sizes
* Ability to automatically capture snapshot on low memory. You can instruct the profiler to
capture memory snapshot when used memory reaches specified threshold. The threshold can
be set up and later altered during profiled application run time. The default value can
be specified in command line ('usedmem' option - see -agentlib:help), or via IDE plugin UI.
This feature is supported for Java 1.4 and higher.
* New action "Memory | View Retained Objects" (Shift-F4). One of use cases for this action:
browsing "Biggest objects" for the entire snapshot, you may be interested why some particular
object retains memory. Simply select the object in the list, apply the action, and then, in
new tab that will be opened, search for "Biggest objects", or browse "Class tree" etc.
* Scalability improvement: it is possible to work with much bigger memory snapshots
* Memory profiling (JVMTI only): references from class to its constant pool entries (i.e. string literals)
* Objects in the finalizer queue are treated as garbage
* Object allocations are correctly recorded on Java 5.0/6.0 with JVMTI for arrays and
objects created via cloning, reflection etc.
* Allocation profiling: new "Method list" view
* Allocation profiling: Hot spot lists are more compact and thus more useful, through
excluding methods that delegate object creation to other methods. Additionally, the hot
spots now include directly called filtered (i.e. library) methods, as well as non-filtered
(methods from profiled application).
* Allocation profiling: Merged callees: own allocations are shown as well
* Allocation profiling: Merged callees: better handling of recursive methods
* Allocation profiling: "Go to method by name" feature is back
* Internal optimization: less memory required to load memory snapshots with allocations
* CPU times results accuracy is increased for the platforms that provide appropriate support
for thread time measuring. At the moment these platforms are: Windows NT/2000/XP and Solaris.
We're looking forward to use the same approach for the latest Linux kernels, and are
investigating whether this approach is possible for Mac OS X.
* The ability to measure method invocation counts in addition to CPU times is implemented using
dynamic bytecode instrumentation approach, that allows to significantly reduce impact on
performance of profiled application in comparison with approach used in previous versions
of the profiler. This ability is only available in Java 5.0 or higher, because older JVMs
do not provide appropriate means for dynamic bytecode instrumentation.
* New "Method list" view
* Hot spot lists are more compact and thus more useful, through excluding methods that delegate
resource consumption to other methods. Additionally, the hot spots now include directly called
filtered ( i.e. library) methods, as well as non-filtered (methods from profiled application).
* Merged callees: own times are shown as well
* Merged callees: better handling of recursive methods
* "Go to method by name" feature is back
* Internal optimization: less memory required to load CPU snapshots
* When profiled application is launched from IDE, the profiler UI automatically opens and
connects to the application (If found obtrusive, this option can be turned off from plugin UI)
* "Profile" action by default starts application with CPU times measuring (can be changed from plugin UI)
* Eclipse 3.1 supported
* Eclipse: problem fixed: navigation feature didn't work on some project configurations
* IntelliJ IDEA: plugins are installed into user home, into IDEA's standard config directory.
* IntelliJ IDEA: if you launch profiling application with Java 5.0, but the Java version cannot
be retrieved via IDEA's Open API, you may take advantage of Java 5.0 profiling capabilities,
selecting "Force profiling with Java 5.0 API (JVMTI)" checkbox in the "Startup/Connections"
tab of a run configuration.
* NetBeans: Tomcat profiling is now supported via the "Profile" action
* NetBeans: navigation feature now supports anonymous inner classes
* JDeveloper: addtional profile options are configured from UI
* JBuilder: addtional profile options are configured from UI
* Bug fixes
* Sun Java System Application Server (previously named SunONE) 7.x/8.x supported
* Apache Geronimo supported
* Special treatment of Tomcat running as Windows service in the integration wizard
* Oracle Application Server 10g supported
* JRun: ability to specify target Java version (1.3/1.4 vs 5.0) in the integration wizard
* JRun server: supported on Mac OS X
* If integration with J2EE server cannot be performed fully automatically, user is shown an
appropriate error message and is instructed how to integrate manually
* Integration wizard generates scripts that choose appropriate system-dependent agent library
in runtime. In particualr this allows to e.g. generate script on Windows for Linux server
where running the profiler UI is not possible.
Other important improvements
* All locally running profiled applications are correctly detected on all supported platforms.
* List of applications to connect for each application shows a descriptive name based on main
class or jar-file of the application.
* To distinguish snapshots captured on exit, they are named with prefix based on main class
or jar-file of the profiled application.
* Verbose application name based on main class or jar-file is avalable on Mac OS X as well.
* User interface options cleanup. On Mac OS X there's no configuration dialog at all, and all
settings are retrieved automatically.
* Connection UI changed
* Added ability to connect to remote application given host only
* Java 6.0 "Mustang" supported (tested with b42)
* UI: "Useful actions" in profiler views
* Some changes in the profiler API
* Some changes in the command line parameters of the agent
* Improved legends
* Welcome screen that is a good starting point to begin work with profiler
* An example of Java application can be launched directly from the Welcome screen, that helps
to start exploring the profiler with no additional setup
* Context-related hints give short description and explain purpose of each of the profiling views
* Improved Help
* Other UI improvements
The YourKit Team
"Don't get lost in data, get information!"
If you would not like to receive any more information about
YourKit Java Profiler, simply send an email firstname.lastname@example.org
with the subject line "unsubscribe".