By Petr on Jun 23, 2010
In NetBeans 6.9 is available Profile me Now! feature as well for PHP distribution. This feature generate a snapshot to understand what's going on if you think that the IDE is slow. By default the feature is not visible and you have to enable the IDE's self-profiling feature. Go to View main menu, then choose Toolbar and enable Memory toolbar.
Now you should see Memory toolbar and also Profile Me button.
Prepare the IDE for the operation that seems to be slow. Press the Profile Me button or use shortcut ALT+SHIFT+Y to start to collecting data. The icon of the button is change during profiling.
Perform the operation and when it's done, press the Profile Me button again or press the shortcut ALT+SHIFT+Y to stop profiling.
IDE creates a profiling snapshot and because there is not Profiler installed by default in PHP distribution, an information dialog is displayed with the path where the snapshot is saved.
If you don't use PHP distro or you installed the Java Profiler (the Java Profiler requires java support), then the snapshot is opened in NetBeans. In this case you have to save it via Export to ... button.
To provide a useful snapshot as much as possible, try to isolate the problematic operation so the snapshot doesn't contain other irrelevant data. For different problems create separate snapshots. Make sure there are no other CPU-heavy tasks running on your computer.
The CPU snapshot is in fact a set of thread dumps taken several times per second (sampling technique). It has a very low overhead, so almost does not affect the running IDE. It is not suitable for profiling very short operations (under 1 second). The snapshot contains no memory data. In case of problems with memory, see how to create a memory dump.
Check the memory bar to make sure the IDE does not run close to memory limits (click the bar to force garbage collection). In such case the slowness is caused by frequent garbage collections, and the whole problem is likely memory-related. You might see OutOfMemoryError too. In such case a memory dump is needed.