blob: f0aa84aa1e9dae143949a8ed0ded02270b001097 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>NetBeans IDE - Java Profiler Features</title>
<link rel="stylesheet" href="../../netbeans.css" TYPE="text/css">
<link rel="stylesheet" href="../../features.css" type="text/css" >
<meta name="description" content="NetBeans IDE - Java features">
<meta http-equiv="content-language" CONTENT="en">
<meta name="author" content="Ruth Kusterer" />
</head>
<body>
<h1><a name="profiler"></a>Profiler</h1>
<p><a href="../../images_www/v7/1/screenshots/profiler.png"><img
src="../../images_www/v7/1/screenshots/profiler-cut.png"
alt="NetBeans IDE with Java profiler"
width="649" height="196" border="0"/><br /><span
class="font-11"><br>Click image for fullscreen preview</span></a>
</p>
<p><strong>The NetBeans profiler provides expert assistance
for optimizing your application's speed and memory usage,
and makes it easier to build reliable and scalable Java SE, JavaFX and Java EE applications. </strong>
</p>
<h2>Task-Based Profiling</h2>
<p>
Select from several common profiling tasks, such as standard CPU
or memory profiling, or simple monitoring.
The options have been preset to default values by experts;
you can customize settings for a specific application.
</p>
<p>
You precisely control the amount of overhead the profiler imposes,
and therefore analyze the application while it runs at almost full speed.
You can store analysis data for offline processing: Save and export snapshots
of collected results as CSV, HTML, or XML files.
</p>
<table class='features-table' >
<tr>
<td>
<h2>Heap Walker</h2>
<p>
Use the Heap Walker to evaluate the Java heap contents
and to identify unnecessary references that cause memory leaks.
You can browse classes and instances of classes on the heap,
fields of each instance or class, and references to each instance.
Use jHat compatible OQL queries to analyze the contents of a heapdump:
Benefit from basic syntax highlighting and code completion for OQL.
</p>
</td>
<td class='screenshots-col'>
<img alt="netbeans profiler heapwalker" src="../../images_www/v6/features/profiler-heapwalker_p150.png" width="150" height="81" class="box">
</td>
</tr>
<tr>
<td>
<h2>Profiling Points</h2>
<p>
Place profiling points in your source code
to more precisely control the collection of profiling results,
similar to debugger breakpoints.
</p>
<p>
You use profiling points to automatically trigger actions
when certain conditions are met, such as execution of a line of code,
time elapsed, or memory used. Profiling points can trigger heap dumps,
the reseting of results collected, the running of a load generator script,
and the taking of a results snapshot.
</p>
</td>
<td class='screenshots-col'>
<img alt="netbeans profiling points" src="../../images_www/screenshots/6.0/javaSE_profiler_profiling_points2_150px.png" width="150" height="56" class="box" >
</td>
</tr>
<tr>
<td>
<h2>Identifying CPU Bottlenecks</h2>
<p>
The NetBeans profiler can be set up to report only on particular methods or the entire application.
A graph categorizes where CPU time has been spent. Click on the graph sections
to drill down from high-level categories to more detailed profiling information.
</p>
<p>
Profile an entire application, or a subset, under a realistic workload.
You can do load testing by starting JMeter scripts
at the beginning of a profiling session.
</p>
<h2>Tracking Memory Usage</h2>
<p>
Pinpoint leaking objects based on their special pattern of allocations
and garbage collections, or lack thereof.
Object liveness profiling tracks both object creation and garbage collection events.
Watch the number, age, allocation paths, and other characteristics of objects
currently in memory and compare memory snapshots.
</p>
</td>
<td class='screenshots-col'>
<img alt="profiler drill-down" src="../../images_www/screenshots/6.0/javaSE_profiler_drilldown_150px.png" width="150" height="132" class="box">
</td>
</tr>
<tr>
<td>
<h2>Monitoring Threads Status</h2>
<p>
On the Threads Timeline, the NetBeans profiler displays the current
and past status of all threads in an application.
Thread Details give you detailed information about one or more selected threads,
including a list of all state changes in the thread life.
</p>
<h2>Remote Profiling</h2>
<p>
Profile an application that is running on a different system than your NetBeans IDE.
The profiler's remote pack can be installed on a remote system,
allowing you to profile an application that is started on that system.
</p>
<h2>Attach Profiler</h2>
<p>
Attach the profiler to any Java application,
even applications that are not started by the IDE.
If the Java application and the IDE are both run with JDK 6,
you can even attach the profiler dynamically,
allowing you to do profiling of an application that is already running.
</p>
</td>
<td class='screenshots-col'>
<img alt="profiler threads" src="../../images_www/v6/features/profiler-threads.png" width="150" height="88" class="box">
</td>
</tr>
</table>
<p>&nbsp;</p>
<p><img alt="-" src="../../images_www/v6/arrow-button.gif" width="15" height="12">&nbsp;<a href="../../kb/trails/java-se.html">Java SE And Base IDE Learning Trail</a></p>
</body>
</html>