2011/12/16 John Lindgren <john.lindg...@aol.com>:
> Lately I have been trying to improve the performance with large
> playlists (i.e. on the order of 100,000 entries).  The one remaining
> problem spot seems to be GtkTreeView.  I am attaching a simple test
> program that creates a GtkTreeView with 3 columns and 100,000 rows.
> With GTK+ 3.2.2, the program uses 29 seconds of CPU time before reaching
> idle, on a 2 GHz Core 2 Duo.  (GTK+ 2.24.8 is considerably better, at 10
> seconds, but still too slow for practical use.)  Is there any way that
> GtkTreeView can be made usable for such long lists?

I remember when the treeview system was being built one of the aims
was to make it (fairly) easy to write your own model.

The idea was that, if your application required it, you could swap the
generic default models for something which linked the view directly to
your program's internal state. For example, a database view could have
a custom model which pretended to have 100m rows and which fetched
chunks of 100 rows at a time from the database as required by the view
as it scrolled. The user would have the illusion of being able to
scroll freely though a huge dataset without having to build a massive
data structure in memory.

You obviously have to turn off auto row and column sizing, since it's
not going to be possible for the treeview to walk the model and
calculate sizes for you. I suppose sorting by column and filtering by
content could work if your index is good enough.

I've never tried implementing a custom model myself and I don't know
if this aim was realized in the final code, but that was one of the
ideas. Google suggests this link, I don't know whether it's any good
though.

http://en.wikibooks.org/wiki/GTK%2B_By_Example/Tree_View/Custom_Models

John
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to