| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html lang="en"> |
| <head> |
| <meta name="copyright" content="Copyright (c) IBM Corporation and others 2014. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <link rel="STYLESHEET" href="../book.css" type="text/css"> |
| <script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"></script> |
| <title>UI Responsiveness Monitoring</title> |
| </head> |
| <body> |
| |
| <h1>UI Responsiveness Monitoring</h1> |
| |
| <p>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 <strong>UI Responsiveness Monitoring</strong>, which |
| will automatically detect UI freezes, capture stack traces, and write warning or error messages |
| containing the collected information to the Eclipse error log.</p> |
| |
| <p>The |
| <a class="command-link" |
| href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.ui.monitoring.page)")'> |
| <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="command link"/> |
| <strong>General > UI Responsiveness Monitoring</strong></a> preference page allows you to enable automatic |
| detection of UI freezes and to modify parameters affecting freeze detection and logging.</p> |
| |
| <img src="../images/uiresponsiveness_preferences.png" alt="UI Responsiveness Monitoring preference page" border="0"> |
| |
| <p>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.</p> |
| |
| <p>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.</p> |
| |
| <p>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 <strong>Add Filter...</strong> button and type the fully qualified method name |
| of a stack frame to use as a filter.</p> |
| |
| <p>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.</p> |
| |
| </body> |
| </html> |