Re: [TreeView] Performance of TreeView with huge lists



On Mon, 2008-02-11 at 22:20 +0100, Kristian Rietveld wrote:
> is there any way that giving a user a list of
> 100 million items is going to be useful?

I would have said "no", but someone did present to me an interesting
take on the matter a few weeks ago when Davyd and I were giving the GTK
& GNOME tutorial at linux.conf.au.

A person approached me and whinged about TreeView performance on
ludicrously large datasets (he cited "millions of rows"). I mostly spent
my time explaining that he could either:

        a) develop an alternative navigation scheme (say, Buttons) than
        the scrollbars of  Widget-in-ScrolledWindow, thereby only
        needing a ListStore with 20-30 rows in it, or

        b) derive a custom TreeModel subclass that lazy-loads its data
        as needed by the TreeView, thereby keeping the scrollbar
        semantics. [Davyd piped up and noted that he had used this
        technique in via pygtk quite successfully when dealing with
        large seismic data sets]

Mostly the gentlemen kept complaining that ListStore should already just
do this for him and seemed to be expecting us to fix it for him (that
went over well, as you could imagine). He finally described his use
case, though, and my scepticism abated somewhat.

Apparently in the GUI on top of the Wireshark (formerly known as
Ethereal) packet analyzer, people like to madly scroll up and down
through a list showing a few million rows of packet dump looking for
"something that changes".

Hm.

I'm not sure our update speed could ever be sufficient for such
scrolling to actually be drawn fast enough for such cues to be noticed
(though we all appreciate the efforts of anyone who profiles and can
suggest improvements in our scrolling performance).

But as a general thought, letting the eye scan for elements which break
a pattern IS a viable form of interface. I'm not convinced that
scrolling through a TreeView with 1.0e8 rows is the best way to do such
a thing, but from a usability standpoint scanning is legit, and perhaps
someday we can think about what we might do to help that sort of UI
along.

In the mean time, I'm with everyone else: ListStore is the way it is for
the general purpose it serves; if one don't like it, then TreeModel is
there to be subclassed.

AfC
Sydney

-- 
Andrew Frederick Cowie

Operational Dynamics is an operations and engineering consultancy
focusing on IT strategy, organizational architecture, systems review,
and change management procedures. We carry out research and development
on behalf of our clients and enable successful use of open source in
mission critical enterprises, worldwide.

http://www.operationaldynamics.com/

Sydney   New York   Toronto   London

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]