UI Responsiveness Monitoring

Sometimes you may encounter a long pause when the GUI does not redraw or respond to typing or mouse actions. Determining causes of such a UI freeze in most cases requires capturing stack traces of Eclipse threads. In case you are experiencing UI freezes and want to report the problem to the correct Eclipse project, you can enable UI Responsiveness Monitoring, which will automatically detect UI freezes, capture stack traces, and write warning or error messages containing the collected information to the Eclipse error log.

The command link General > UI Responsiveness Monitoring preference page allows you to enable automatic detection of UI freezes and to modify parameters affecting freeze detection and logging.

UI freezes longer than the warning threshold value entered in the preference page are logged to the Eclipse error log as warnings. The logged messages include one or more stack traces of the UI thread. Longer UI freezes are logged as errors and include stack traces of all threads. Please keep in mind that capturing stack traces of all threads involves extra overhead, so setting the error threshold below 1 second is not recommended.

A UI freeze is logged at the end of the freeze or after the deadlock threshold has expired, whichever comes first. The latter condition facilitates logging of indefinite UI freezes caused by deadlocks. If Eclipse becomes completely unresponsive don't kill it until the deadlock threshold expires. The message containing stack traces of all threads will be written to the Eclipse error log.

Logging of UI freezes is affected by two filters. One filter is used to avoid logging of UI freezes matching a specific pattern. A UI freeze is ignored if a stack trace of the UI thread contains at least one stack frame matching the filter. Another filter is used to avoid logging of non-UI threads with trivial stacks. The stack of a non-UI thread is not included in the logged message if all its stack frames match the filter. To add a stack frame to a filter, click the corresponding Add Filter... button and type the fully qualified method name of a stack frame to use as a filter.

Please file bugs for the UI freezes you encounter, describe what you were doing at the time and include the messages and the stack traces from the error log related to the freezes. This way the corresponding Eclipse project can work on the UI freeze and improve your user experience with Eclipse.