电脑技术学习

Java剖析工具YourKit 发布5.0版本

dn001
YourKit开发小组近日宣布发布他们的5.0新版.

YourKit Java Profiler 是业界领先的Java剖析工具。CPU和内存的剖析历来是很困难的,YourKit创造出了革命性的剖析工具,应用在研发和生产阶段,为专业的Java开发者带来了无比的好处。

新版在内存监测,cpu监测,远程监测等方面进行了不少提升。

下面是来自官方网站的摘要:


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

Telemetry views

* 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.

Memory profiling

* 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 profiling

* 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

IDE Integrations

* 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

J2EE Integrations

* 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



如果需要更多信息,可以直接访问:
http://www.yourkit.com/overview/index.jsp

标签: