Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » Re: [BUG?] Performance problem with TreeViewers under Windows XP
Re: [BUG?] Performance problem with TreeViewers under Windows XP [message #490903] Mon, 12 October 2009 10:40 Go to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

If something works appropriate under GTK but fails on Windows it's very
likely a SWT problem. I know that Windows has problems with Big
Tables/Trees but the people over at the swt newsgroup might have more input.

Tom

Simon Chemouil schrieb:
> Hello,
>
> I believe I discovered a performance bug in JFace TreeViewers when a
> given node has many children (> 1000), and this bug happens only on
> Windows (tested with Windows XP, no WPF backend). I am developing under
> GNU/Linux and the GTK backend the treeviewers behave perfectly fine there.
>
> I have tested the performance with both lazy and non-lazy Tree content
> providers (ILazyTreeContentProvider & ITreeContentProvider) and the
> lazy+virtual style is completely unusable under Windows XP in this
> usecase (with as little as 1000 children, which seem reasonable) because
> the scrollbar/keyboard scrolling is sluggish.
>
>
> When using a non-lazy content provider, the Windows scrollbar behaves
> perfectly fine, but the selection of items remains very sluggish, as
> well as keyboard navigation using arrows.
>
>
> None of these problems happen under SWT over GTK, so it might be a SWT
> problem, but I experience them from the JFace level (I don't have much
> experience with virtual style directly in SWT).
>
> As I am unable to provide a patch/fix for the bug, I have isolated the
> problem in a demonstration bundle that displays a simple model ; it
> defines two views with treeviewers displaying the same model, one with
> the lazy content provider, and the other without.
>
> I have commited it to github where you can checkout the tree or simply
> download as a zip file:
> http://github.com/simon-chemouil/org.eclipse.jface.viewers.t ests.performance
>
>
> More details are in the README file.
>
> I would be grateful if a JFace/lazy expert could have a look and check
> if I'm doing things right (which I believe I am, I'm following the API
> carefully, checked all the relevant bugs on Bugzilla), and confirm
> whether it is or not a bug.
>
> I'm posting here instead of Bugzilla because I think this is the nominal
> use case to have 10k elements under Windows XP and I would be really
> surprised if there was no workaround.
>
> Thanks for the help!
>
Re: [BUG?] Performance problem with TreeViewers under Windows XP [message #490922 is a reply to message #490903] Mon, 12 October 2009 12:04 Go to previous messageGo to next message
Simon Chemouil is currently offline Simon ChemouilFriend
Messages: 24
Registered: July 2009
Junior Member
Tom Schindl a écrit :
> Hi,
>
> If something works appropriate under GTK but fails on Windows it's very
> likely a SWT problem. I know that Windows has problems with Big
> Tables/Trees but the people over at the swt newsgroup might have more input.


Hi Tom,

Thanks for the reply. I posted on the JFace newsgroup because I
experience the problem at the JFace level and from my understanding the
SWT guys send people here when they post JFace-based snippets.

I will try to ask there anyway to see if they know of the bug/if they
consider it a bug.

Thanks again,

--
Simon
Re: [BUG?] Performance problem with TreeViewers under Windows XP [message #490923 is a reply to message #490922] Mon, 12 October 2009 12:13 Go to previous messageGo to next message
Simon Chemouil is currently offline Simon ChemouilFriend
Messages: 24
Registered: July 2009
Junior Member
Woops. I didn't see Tom replied to both newsgroup, this reply was meant
to platform.jface.

I think the bug would be reproducible using SWT Trees and the
SWT.SetData callback, but I have not tried it so far.

Does any SWT guru knows of performance problems that happen on Windows
(XP) and not on GTK when tree nodes have many children (from 1000 to
10000) ?

The two problems (that happen only under Windows), as described, are that:
- the scrollbar can barely be moved when using the Tree in the
SWT.Virtual style when there are many children in one node.
- with and without the SWT.Virtual slow, selecting TreeItems (and thus
moving with the keyboard) is extremely sluggish when there are many
children in one node.


I think it is a SWT bug even if I experience it from JFace because it
works perfectly under Linux, and thus it demonstrates different
behaviors at the SWT level.

I have commited it to github where you can checkout the tree or simply
download as a zip file:
http://github.com/simon-chemouil/org.eclipse.jface.viewers.t ests.performance



Thanks for your help,

--
Simon

> Hi Tom,
>
> Thanks for the reply. I posted on the JFace newsgroup because I
> experience the problem at the JFace level and from my understanding the
> SWT guys send people here when they post JFace-based snippets.
>
> I will try to ask there anyway to see if they know of the bug/if they
> consider it a bug.
>
> Thanks again,
>
Re: [BUG?] Performance problem with TreeViewers under Windows XP [message #491233 is a reply to message #490923] Tue, 13 October 2009 18:14 Go to previous messageGo to next message
Grant Gayed is currently offline Grant GayedFriend
Messages: 2150
Registered: July 2009
Senior Member
It looks like you're seeing
https://bugs.eclipse.org/bugs/show_bug.cgi?id=129457 , so I would suggest
CC'ing yourself to this report. The title mentions VIRTUAL specifically,
but in the comments it also discusses non-VIRTUAL Tree slowness. I don't
know the details of the investigation that was done for this, but it looks
like large Trees run up against win32 limitations.

I've re-assigned the report to a current developer, but he may not be able
to take it any further than SN's investigation if it is indeed a win32
issue. My only suggestion for a workaround would be to change your UI to
not require such large child counts (eg.- splitting items with large child
counts into multiple sub-items, etc.) , which may or may not make sense
depending on your context.

Grant


"Simon Chemouil" <simon.chemouil@artal.fr> wrote in message
news:hav6h8$edd$1@build.eclipse.org...
> Woops. I didn't see Tom replied to both newsgroup, this reply was meant
> to platform.jface.
>
> I think the bug would be reproducible using SWT Trees and the
> SWT.SetData callback, but I have not tried it so far.
>
> Does any SWT guru knows of performance problems that happen on Windows
> (XP) and not on GTK when tree nodes have many children (from 1000 to
> 10000) ?
>
> The two problems (that happen only under Windows), as described, are that:
> - the scrollbar can barely be moved when using the Tree in the
> SWT.Virtual style when there are many children in one node.
> - with and without the SWT.Virtual slow, selecting TreeItems (and thus
> moving with the keyboard) is extremely sluggish when there are many
> children in one node.
>
>
> I think it is a SWT bug even if I experience it from JFace because it
> works perfectly under Linux, and thus it demonstrates different
> behaviors at the SWT level.
>
> I have commited it to github where you can checkout the tree or simply
> download as a zip file:
>
http://github.com/simon-chemouil/org.eclipse.jface.viewers.t ests.performance
>
>
>
> Thanks for your help,
>
> --
> Simon
>
> > Hi Tom,
> >
> > Thanks for the reply. I posted on the JFace newsgroup because I
> > experience the problem at the JFace level and from my understanding the
> > SWT guys send people here when they post JFace-based snippets.
> >
> > I will try to ask there anyway to see if they know of the bug/if they
> > consider it a bug.
> >
> > Thanks again,
> >
Re: [BUG?] Performance problem with TreeViewers under Windows XP [message #491422 is a reply to message #491233] Wed, 14 October 2009 13:36 Go to previous message
Simon Chemouil is currently offline Simon ChemouilFriend
Messages: 24
Registered: July 2009
Junior Member
Grant Gayed a écrit :
> It looks like you're seeing
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=129457 , so I would suggest
> CC'ing yourself to this report. The title mentions VIRTUAL specifically,
> but in the comments it also discusses non-VIRTUAL Tree slowness. I don't
> know the details of the investigation that was done for this, but it looks
> like large Trees run up against win32 limitations.
>
> I've re-assigned the report to a current developer, but he may not be able
> to take it any further than SN's investigation if it is indeed a win32
> issue. My only suggestion for a workaround would be to change your UI to
> not require such large child counts (eg.- splitting items with large child
> counts into multiple sub-items, etc.) , which may or may not make sense
> depending on your context.

Hi Grant,

Thanks for the reply. Indeed it looks very much like the bug I am
describing. In the mean time I have ported my tests (and application)
directly to SWT trees to gain at least a bit of performance, and while I
gained a lot, the problem is still here so it is indeed a bug I confirm
here.

However, there is a correlated problem I think related to that bug that
is not mentioned in the report: the fact that the selection of tree
items gets slow too when there are many items (only on Win32).


I have zero knowledge about Win32 programming but it could be useful to
see if a "native" Windows applications with 10k children in a node
behave the same way, that would definitely tell there is something wrong
with the win32 SWT back-end or with Win32's trees themselves.

As for the workaround you propose, unfortunately this cannot be done.
This is a prototype for AIRBUS's next-gen simulation/monitoring suite
and we are testing if Eclipse is suitable for the requirements,
including a large number of variables to display. I cannot simply change
the UI because the layout is defined very precisely. It is sad to see it
work so well on GTK and nearly unusable on Windows.

Thanks for your help, and hopefully Felipe will be able to fix it.

--
Simon Chemouil
Previous Topic:size och swt labels
Next Topic:Update DragSourceEvent.image while dragging
Goto Forum:
  


Current Time: Thu Mar 28 18:18:09 GMT 2024

Powered by FUDForum. Page generated in 0.05462 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top