UI Monitoring, Top Eclipse Mars Feature #8

UI Monitoring, Top Eclipse Mars Feature #8

We all hate waiting! The good news is that Eclipse Mars is only 1 1/2 weeks away and to help you while you wait for this great release, I’m reviewing the Top 10 Eclipse Mars features that I’m most excited about.

But I digress. We all hate waiting; and what happens when your IDE makes you wait?

keep-calm-wait

From Mac’s spinning beach ball of death to Window’s unresponsive UI, user interface lags take developers out of the flow. We’ve all tried to fix the problem by clicking the mouse a little harder or hammering on the esc key; but as we all know, that doesn’t work. The only real fix is to understand what long-running task is blocking the UI thread.

With Eclipse Mars, debugging this just got a lot easier.

Eclipse now ships with a UI Responsiveness Monitoring Tool. The tool can be configured to report instances of UI unresponsiveness.

uiresponsive

UI freezes longer than the warning threshold are logged to the Eclipse error log as warnings. The logged messages include one or more stack traces of the display thread. Longer UI freezes are logged as errors and include stack traces of all threads. Filters can be used to ignore particular freezes, which is especially useful if you are trying to isolate particular bugs.

Errors and warnings are reported to the Eclipse Error log. Clicking on the error will reveal the stack trace at the time of the freeze.

ui-error

We can see here that downloading the internet on the UI thread was a bad idea.

stack-trace

For more Eclipse Tips and Tricks, follow me on Twitter.

3 Comments
  • Jörg
    Posted at 12:46 am, June 16, 2015

    Yup very clear to see in the Stacktrace that downloading the Internet was in progress 🙂

    BTW Eclipse market place caused UI freeze for me repeatedly the other day with Mars, and I don’t think this was logged or detected!

  • Posted at 4:15 pm, June 26, 2015

    Yes, that’s true, it is only enabled by default in two packages: In the RCP/RAP package and in the Committers package, because we thought that the users of those packages are typically the ones who are very likely interested in the cause of UI freezes.

    If we have enough experience with this new feature, it may make sense to enable it in other packages, too.