Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 58174

Summary: [Workbench] UI is now very sluggish
Product: [Eclipse Project] Platform Reporter: Alvin Thompson <alvin>
Component: UIAssignee: Billy Biggs <billy.biggs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: douglas.pollock, eclipse, ed.burnette, john.arthorne, ovidr
Version: 3.0   
Target Milestone: 3.0 M9   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Alvin Thompson CLA 2004-04-12 14:06:15 EDT
i've been trying to live with the new look since its release, and while the look
of the new UI is more acceptable as of late, the feel seems (compared to m7)
frustratingly sluggish. i am running on linux so i can't speak for other platforms.

while everything seems slower compared to M7, here are some examples. the common
theme is you often find yourself waiting for the UI to catch up, which is the
kiss of death for user perceptions:

* there now seems to be a pause and disconcerting 'flash' when switching
editors/views. it seems to be longer if the window has not been shown before.
the 'flash' is when the screen goes gray, then changes to the correct display.
it wastes time and is distracting. why do they do this? the only view that does
_not_ seem to do this is the new 'intro' view.

* fast views are virtually useless now, as they are incredibly sluggish to
render at best. also, if a window has not yet been accessed, it can take several
seconds to open. this is incredibly frustrating and breaks your 'rhythm'. the UI
is no place for lazy initialization.

* i've previously submitted a bug on the resizing of fast views being sluggish.
while substantially better now, it is still not where it was or where it should be.

* it seems to take longer switching perspectives; it at best takes over a second
and you can actually _see_ various components being rendered. it often takes
even longer. once again, that annoying flash.

* it seems to take much longer to start eclipse now. i first noticed this
experimenting with the new look jars in M7 as compared to the originals, so i'm
pretty sure it's something in the new look. once again, too much waiting.

* resizing the main window is also extremely sluggish, and often results in the
perspective bar (which i have on a new line) being 'misplaced' (it winds up not
shown or cut off), or the is an unnecessary line added after the perspective bar.

* generally, redrawing of components --especially text components-- takes much
too long.

* often, artifacts (gray blocks)  are left behind when redrawing text components
on linux.

overall, there are many such performance problems which has turned eclipse
experience from acceptable in M7 to honestly painful now. the product has turned
from the poster child of SWT to something i'm quite honestly embarrassed to show
to people, because they know i strongly endorsed it before and it now doesn't
live up to my statements.

i have honestly given my best effort to get used to this new look, but it
remains too frustrating and painful to use. please do not misconstrue my
submission of this bug as acceptance of the direction eclipse is taking. if
anything, i think we should be going in the _opposite_ direction and making all
components native where possible, and adding functionality within those limitations.
Comment 1 Michael Van Meekeren CLA 2004-04-13 08:00:12 EDT

*** This bug has been marked as a duplicate of 37847 ***
Comment 2 Michael Van Meekeren CLA 2004-04-13 08:00:36 EDT
crap.. wrong bug.
Comment 3 Debbie Wilson CLA 2004-04-13 10:50:03 EDT
Which build of 3.0 are you using?  
Comment 4 Alvin Thompson CLA 2004-04-13 13:44:30 EDT
currently, last week's integration build (gtk) i use somewhere around a 1.8GHz
P4/512M. problems have been mostly around since the new look, although resizing
is substantially improved.

really, the 'intro' view is nice and zippy. clearly, it renders differently then
the others. if you get the other views to behave like that one (and speed up
overall redrawing, especially while resizing), it would go a long way...
Comment 5 Alvin Thompson CLA 2004-04-15 10:40:19 EDT
you may want to consider just not showing the contents of fast views as they
redraw. since regular views do not show contents when resizing, that behavior is
inconsistant, anyway.
Comment 6 Alvin Thompson CLA 2004-04-15 10:41:32 EDT
correction: you may want to consider just not showing the contents of fast views
as they *resize*
Comment 7 Billy Biggs CLA 2004-04-15 12:08:14 EDT
There are a lot of issues in here, so let's try and split this up and
investigate each individually.  First I'll address some of the ones that I know
have bugs open already.

1. The gray blocks issue is an annoying one.  See bug 34365.  I find it
interesting that some people see this a lot more than others (I've never seen it
myself).  Do you use code assist?

2. Regarding resizing and the perspective bar / tool bar, see bug 56330 and bug
56829.  The major annoyances seem to be fixed now.

3. Flashing on tab switches and during perspective switch.  Part of this is
related to controls assuming that setRedraw() works.  See bug 53791 for why this
is challenging under Linux/X11.  While it may sound bad, I do believe we can
improve the situation even if we never get the full setRedraw() functionality.

4. There have been bugs about fast views, and also a steady stream of
development and improvements, so this has been a moving target.  In M8 and in
the latest builds, I think they seem a lot faster here than what you're seeing.
 Personally, I don't think we should give up on opaque resizing of fast views
just yet: maybe it's just exposing something else that's unnecessarily slow?  To
help approach this, would you mind posting a screenshot showing what view is a
fastview, and what's under it?  I think it might help to have a benchmark.

Moving foward, I will open some more specific bugs.   I believe we can improve
the performance of perspective switching, and maybe rework it with the Linux
drawing issues in mind, so I will open a bug about that.  We should have a bug
about the startup speed issue, or maybe we should open a new one about that. 
Regarding redrawing speed, let's try and have some specific cases in mind.  Can
you describe some situations that you can see where certain controls are just
far too slow?
Comment 8 Ed Burnette CLA 2004-04-15 12:25:52 EDT
What's the best way to track down why a particular UI slowness is occurring? 
Debug trace options (which ones?), Java memory profilers (recommendations?), 
CPU profilers (which?), System specific monitors (perfmon, filemon, ...?), 
etc.. I feel that I could submit much more helpful reports if I could narrow 
it down a little bit first. For example, it could turn out that I have a 
network problem or a corrupt workspace or something unique like that on my end.
Comment 9 Douglas Pollock CLA 2004-04-15 13:26:04 EDT
There are three basic types of performance evaluation -- at least, that I know 
of. 
 
1.) Responsiveness.  This is essentially a measure of how long the event thread 
is tied up handling a single user event of some kind.  This can be tested using  
the "Patch to provide debugging information from SWT" on Bug 49524.  This patch 
is old, and may need some tweaks to apply cleanly to the most recent SWT code.  
Basically, it prints a message if some event processing takes longer than 
200ms.  You can adjust the time depending on your machines performance 
characteristics. 
 
2.) Raw Speed.  This is a measure of how fast things are going compared to how 
fast they could go (in the optimal world).  This one is tricky to measure 
because you have to choose some task (say, switching perspectives) and then try 
to decide if it's taking a long time compared to what it could take.  Profiler 
tools are sometimes useful in determing potential weaknesses, but in complex 
applications like Eclipse they can also be confusing to use. 
 
3.) Perceived Performance.  This is a measure of how fast things are going 
compared to the type of work flow taking place.  For example, it is reasonable 
for a perspective switch to take a while (infrequent event), but if typing a 
character takes 5ms, that's far too much.  This also ties in with repainting 
issues, which can make something seem a lot slower (as you can watch 
intermediary, ugly steps).  This is the hardest to measure, and really just 
takes people complaining that "task X is slow enough to both me".  Once the 
general problem area is known, you can use profilers. 
 
 
The profilers that the UI team is currently using are YourKit and OptimizeIt.  
They work reasonably well for memory and CPU profiling, respectively.  If you 
have a specific task, then you can use a similar mechanism to the patch 
(currentTimeMillis and printlns) to get some idea of how long it is taking; 
this can be helpful for cross-platform comparisons. 
Comment 10 Billy Biggs CLA 2004-04-15 16:29:45 EDT
I posted bug 58738 regarding slow perspective switching on Linux-GTK and
describing some of what we know about the problem already.
Comment 11 Billy Biggs CLA 2004-04-15 17:04:00 EDT
Regarding fast views, see bug 57143.
Comment 12 Carolyn MacLeod CLA 2004-04-20 14:09:20 EDT
See also bug 58174.
Comment 13 Carolyn MacLeod CLA 2004-04-20 14:10:11 EDT
OOps... I meant bug 56694.
Comment 14 Billy Biggs CLA 2004-04-21 13:10:40 EDT
Alvin:

One of the things you mentioned in your report was that you see a longer startup
time now.  I can't reproduce that behavior here.  All of M7, M8, and the latest
integration build take about the same time to start up on my machine.  Do you
just mean the time between seeing the splash screen and the window appearing, or
something specific about the time between the window opening and the contents
appearing?

If you have some specific numbers, or information about how many projects were
open (or whether they were already built?) or other specific information then
that might be useful.  It doesn't sound like this is a UI issue though.
Comment 15 Billy Biggs CLA 2004-04-21 17:14:46 EDT
I have done some more research into the flashing on editor or view switch, and
opened bug 59528 to track this issue.
Comment 16 Billy Biggs CLA 2004-05-11 17:45:44 EDT
As M9 is approaching, I would like to summarize the issues we have identified
from this bug report so we can close it.

1. Flash when switching editors and views

  This is being addressed in bug 59528 and bug 53791 and is definitely improved
from M8.

2. Fast view performance

  There have been many performance improvements made to fastviews (bug 57143 for
example).  I also suspect bug 56694 hurt us here: the resizing of fast views
causes the gradients to be sent again to the X server, but the big one is gone
now so this should be fixed.

3. Perspective switching is slow

  Bug 58738 describes some of what we have learned about perspective switching
on Gtk+.  More work is needed here.

4. Startup time is slower

  While I have not been able to reproduce this problem here, I believe this will
be solved from bug 56694 as we send fewer gradient images.

5. Perspective bar rendering errors

  Fixed from bug 56330 and bug 56829.

6. Gray blocks in the text area

  Fixed from bug 34365.

Given that we have bugs open for all of the remaining issues, I think we can
close this bug.
Comment 17 Billy Biggs CLA 2004-05-12 14:11:11 EDT
Even though this bug isn't "fixed", I'm marking it as such since we are
addressing all of the remaining issues elsewhere.  I think this bug was useful
because we had a lot of reproducable and specific issues which we could address
individually.  Alvin, if you have more cases like these please post another bug.