Products Docs & Support Community

NetBeans Profiler Features

The NetBeans Profiler includes the following features:

  • Low overhead profiling: you can profile just a subset of the application code - the rest of the code is not instrumented and thus runs at full speed. The profiled subset and the kind of profiling (CPU, memory, etc.) can be changed at any moment during run time.

  • CPU Performance profiling: you can profile the entire application, or select a subset of its code to profile based on one or more root methods that you are free to choose. For example, you can set the doGet() method of your servlet as a root, and thus profile only the code of this method and other methods that it calls. The rest of the Java code, including most of the code of your Web/Application server, will run at full speed. Selective profiling based on chosen root methods appears to be a surprisingly good way to reduce the performance overhead and obtain accurate results for heavily multithreaded applications under realistic workload.

  • Memory profiling: you can profile only object creation events, which imposes smaller overhead and allows you to detect problems with excessive object allocations. If this is not enough, you can turn on object liveness profiling, that records both object creation and reclamation events. It allows you to see the number, age, allocation paths, and other characteristics of objects currently in memory. It also can help you to detect memory leaks.

  • Memory leak debugging: memory leaks are not uncommon with large Java applications. With most of the existing tools, it may take hours to make sure there is really a memory leak, and then to identify leaking objects. Our technology can pinpoint leaking objects for you immediately, based on the special pattern of allocations and reclamations (or lack thereof) that such objects typically demonstrate. You can then check where these objects were allocated, which in many cases is sufficient for identifying the root cause of the leak.

  • Task-based profiling: profiling is a complex activity, which may require quite a bit of tuning, and thus learning the tool's nuts and bolts. However, our task-based approach makes climbing the learning curve much easier, by first offering you several of the most common tasks, such as standard CPU or memory profiling, or simple monitoring. In these tasks, most of the options are preset to the most common values, and only the most important options are exposed to you. Once you learn more, you can switch to custom profiling, where you can get a full advantage of the flexibility of the advanced NetBeans Profiler technology.

  • Threads profiling: you can observe threads & their activity during application execution. The threads profiling offers two views of the threads: "Threads timeline", showing threads activity side-by-side, and "Thread details" showing detailed information about one or more selected threads, including a list of all state changes in the thread's life

  • Processing collected data offline: you can save snapshots of collected results and process them offline.

Next steps