blob: 92c757f8eded58a2a3705c8713758bacd87c04a3 [file] [log] [blame]
<!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 &gt; 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>