JProfiler

Award-winning all-in-one Java profiler
Download

JProfiler Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Trial
  • Price:
  • USD 499.00 | BUY the full version
  • Publisher Name:
  • ej-technologies GmbH
  • Publisher web site:
  • http://www.ej-technologies.com/download/overview.html
  • Operating Systems:
  • Mac OS X 10.1 or later
  • File Size:
  • 20.2 MB

JProfiler Tags


JProfiler Description

Award-winning all-in-one Java profiler JProfiler is an award-winning all-in-one Java profiler. JProfiler's intuitive GUI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.NOTE: To be able to try JProfiler you will have to request and evaluation license HERE. Here are some key features of "JProfiler": Exceptional ease of use: · When you profile, you need the most powerful tool you can get. At the same time, you do not want to spend time learning how to use the tool. JProfiler is just that: simple and powerful at the same time. Configuring sessions is straight-forward, third party integrations make getting started a breeze and profiling data is presented in a natural way. On all levels, JProfiler has been carefully designed to help you get started with solving your problems. Real-time display of profiling data: · With JProfiler you can immediately observe profiling data as your application is running. Memory, CPU, and thread profiling views are updated live and can be inspected without the need to wait for the measurement to complete. For a large number of use-cases, this ability will provide you with an extremely fast path to a solution. In addition, you can save snapshots at any time, interactively as well as programmatically. The unique heap walker: · Finding a memory leak can be impossible without the right tool. JProfiler's heap walker offers you an intuitive interface to solve both simple and complex memory problems. 5 different views show different aspects of the current set of objects. Each view allows you to create new object sets based on the displayed data. Each view provides you with essential insights on the selected objects. Questions like why objects are not garbage collected are answered with a single click of the mouse. The powerful CPU profiler: · Fixing performance bottlenecks is the most frequent use case for a profiler. However, CPU data can be overwhelming in its level of detail and the way data is collected can make a huge difference in usability. With JProfiler, you have a decisive advantage when trying to find the reason for a problem. Call tree view filters, aggregation levels and thread status selectors are just some examples of JProfiler's versatility in this area. The integrated thread profiler: · Problems related to threading are much more frequent than one might assume. Without a thread profiler, you only have a minimal chance to tackle such issues. A whole range of otherwise opaque problems can be solved when using JProfiler, such as increasing liveness in a multi-threaded application that uses too much locking. Thread profiling not only has a separate view section in JProfiler, it is also tightly integrated into the CPU profiling views. Excellent support for Java Enterprise Edition: · Dedicated support for JEE is present in most views in JProfiler. For example, in the JEE aggregation level you see the call tree in terms of the JEE components in your application. Also, JProfiler adds a semantic layer on top of the low-level profiling data, like JDBC, JMS and JNDI calls that are presented in the CPU profiling views. With its JEE support, JProfiler bridges the gap between a code profiler and a high-level JEE monitoring tool. Extensive QA capabilities: · JProfiler is ideally suited as a QA tool, both during development as well as for dedicated QA teams. The rich functionality around snapshot comparisons makes it easy to track progress. JProfiler has strong support for command line operations. This includes the ability to profile, export snapshot data and create snapshots comparisons from the command line. The ant tasks bundled with JProfiler allow you to perform all command line operations from your build script. Broadest support for platforms, IDEs and application servers: · JProfiler integrates into your environment: We provide native agent libraries for a wide range of platforms, both for 32-bit and 64-bit JVMs. Integrations into all popular IDEs makes profiling during development as easy as running your application. And the large number of integrations wizards for nearly all application servers on the market ensures that you can get started with a few clicks and not with reading documentation. Low overhead: · JProfiler records data only when you need it. In fact, you can start your application with the JProfiler agent and attach the JProfiler GUI at a later time. When you do not record any data, the overhead is extremely small. That's what we call on demand profiling. Invariably, there are a lot of things you can adjust in an advanced profiler. JProfiler shows you how your profiling settings will impact performance and offers you templates to quickly select profiling settings for common use cases. Extensibility: · JProfiler is extensible. It is built on a well-documented platform that allows you to build your own custom profiler for special situations or your own analysis tool for snapshots. With the interceptor API you can add additional semantic layers to the profiling data, similar to the built-in JDBC, JMS and JNDI profiling. The ready-to-run examples show you how easy it is to extend JProfiler with a few lines of code. Limitations: · 10 days trial What's New in This Release: · Locking graphs. The monitor analysis in JProfiler was extended with graphs that show the current locking situation and the history of all recorded locking situations. All views that concern monitor analysis are now in their own "Monitor views" section. The current locking graph view shows all threads that are currently waiting or blocking on a monitor as well as those that hold a contended monitor. Deadlocks are are visualized with red nodes. Tool tips show times and stack traces. · In the locking history graph you can record monitor events and navigate step by step through the recorded locking situations. A time line view at the bottom puts the distribution of events into context and provides an alternative way of navigating to other monitor events. · Since there can be a large amount of monitor events, you can mark certain threads or monitors as nodes of interest. A separate set of navigation buttons will then only step through events that involve at least one node of interest. · Monitor events can be cumulated by selecting a region in the time line with the mouse. Total blocking and waiting times as well as lists of stack traces are visible in the tool tip windows for the arrows in the locking graph. · Monitor events are now recorded on demand. Previously monitor events were always recorded which created unnecessary overhead in some cases. Monitor recording can be started in the locking history graph and the monitor history view. Also, there are new trigger actions to start and stop monitor recordings. Note the configurable thresholds for monitor events. · Monitor views are now linked with the heap walker. When analyzing a monitor in the monitor views, it is now possible to show the monitor object in the heap walker, so that you can analyze where it was allocated and how it is referenced. In the locking graphs, you can right-click a monitor node and switch to the heap walker. · The same thing works in the monitor history view. Also, any monitor event in the monitor history view now offers a link to the locking history graph in the context menu. · In the thread history view, there are now tool tips with stack traces that also include links into the monitor views. These tooltips are available if monitors have been recorded for the time under the mouse cursor. · A thread dumps view has been added. Thread dumps show all call frames, not only profiled classes. Multiple thread dumps are supported. You can stay on the same thread and cycle through different thread dumps to see changes in the stack trace. Single threads or the entire thread dump can be copied to the clipboard. · Thread dumps can also be taken with the new "Trigger thread dump" trigger action, the JProfiler MBean or via the Controller API. · The new method statistics view shows statistical data on the distribution of method execution times. Most interesting is the "outlier coefficient" that shows how strongly the slowest invocation deviates from the median time. In the lower part of the view, a graph shows the distribution of call times. Here, the y-axis has been set to a logarithmic display in order to show single outliers more clearly. · Methods with prominent outliers can be further analyzed with the new "exceptional methods" feature explained below. You can right-click any method in the table and choose "Add as exceptional method" from the context menu. · Exceptional method runs are the invocations of a method that take most time. Often, a method performs very similarly over a huge number of invocations, but sometimes it takes much longer. Looking at the call tree does not help in this case, since the regular invocations dominate the single slow invocation. With JProfiler 6, you can mark a method as an exceptional method in the call tree views or the method statistics view and the call tree will show the slowest invocations separately. · Tree map view modes have been added to all views that show call trees. The areas of the rectangles in the tree map are proportional to inherent time and there is a cutoff for maximum nesting depth. You can mouse over rectangles to see the method information and zoom in to see a certain region in more detail. · The biggest objects view in the heap walker has also received a tree map view mode. The areas of the rectangles are proportional to the retained size of the objects. · Stack trace information for the call tracer has been added. At each trace in the call tracer, you can see the current stack trace in the lower window. This makes it much easier to assess the context of the selected trace. · Expanding call trees is now more configurable. Instead of the old "Expand 10 level" action, an "Expand multiple levels" action has been added where the number of levels is now configurable. In addition, a threshold can be defined that prevents insignificant nodes from being expanded. · New profiling settings can now be applied without restarting the JVM if you profile a 1.6+ JVM. This applies to all available options in the profiling settings, the filter settings and the trigger configuration. · This also means that when profiling a remote application server that should start up immediately without waiting for a connection from the JProfiler GUI, you do not have to transfer a config file to the remote server and specify it on the command line anymore. This simplifies remote profiling considerably. · Manual configuration of profiling has been simplified if you profile a 1.5+ JVM. Instead of the -agentlib VM parameter, a boot class path VM parameter and the modification of the native library path environment variable, you now simply specify a single JVM parameter and no other modifications are required. On Windows, with JProfiler installed in C:Program Filesjprofiler6, the VM parameter is -agentpath:C:Program Filesjprofiler6inwindowsjprofilerti.dll=port=8849 · Any remote session configured for port 8849 can now connect to the profiled JVM. · Usually, you will use an integration wizard to insert the VM parameter for profiling into your start script, or use an IDE integration to start profiling without any configuration. However, sometimes it is convenient to make changes manually. In that case, it is now much simpler to set up profiling than before. · Auto-tuning for dynamic instrumentation determines methods with disproportional overhead and suggests them for exclusion in the JProfiler GUI. Very short-running methods that are called very frequently can distort the overall numbers, because the time required to measure those methods takes much longer than the actual method itself. An example of such a method is the method in an XML parser that reads the next character. During profiling, you are notified of such overhead hot spots in the status bar. · By clicking on that notification or when the session is terminated, a dialog is shown that shows you the overhead hot spots and lets you add them to the list of ignored methods with one click. For your next profiling session, these methods will not distort overall numbers anymore. · Ignored method configurations can be reviewed and deleted in the filter settings. · The behavior of auto-tuning is configured with two parameters in the profiling settings. Auto-tuning can also be completely disabled for a session. · JProfiler snapshots can now by opened from IDE integrations. The main advantage is that you get source code navigation in the IDE for a snapshot that way.


JProfiler Related Software