<!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>
