Re: Problem with a TreeView - speed
- From: Murray Cumming <murrayc murrayc com>
- To: Milosz Derezynski <internalerror gmail com>
- Cc: gtkmm-list gnome org
- Subject: Re: Problem with a TreeView - speed
- Date: Tue, 17 Mar 2009 22:22:52 +0100
On Tue, 2009-03-17 at 19:02 +0100, Milosz Derezynski wrote:
> I've already defined visited: "more precisely, call the size vfunc; it
> does this only to have the row heights available, but unfortunately
> for most cell renderers, getting their requested size, similar to a
> widget, will require them to render the content internally, e.g.
> CellRendererText will create a PangoLayout with its text, etc." for
> each cell for each row, like I said, when the row gets added, changed
> or it is simply being scrolled
I do not understand why the cell size would need to be discovered for
every row if we are using fixed-height mode.
> The speed gain by not storing the data in the TreeModel (using
> ListStore or TreeStore or something other based on TreeModel) is
> minuscule compared to TreeView for each newly added row calling the
> size vfunc of each cell renderer for the whole row (I believe there
> even isn't any optimization for not rendering/size-getting what is
> horizontally not visible yet), which for almost all default renderers
> basically means rendering their content; maybe not for
> CellRendererPixbuf, and I'm absolutely not sure about
> CellRendererCombo but Text in any case yes.
>
> On Tue, Mar 17, 2009 at 11:21 AM, Murray Cumming <murrayc murrayc com>
> wrote:
> On Mon, 2009-03-16 at 19:49 +0100, Milosz Derezynski wrote:
> > Sorry, I somehow skipped explicitly stating the point: There
> is no
> > such thing as "invisible" rows with TreeView, because at
> least once,
> > they will be visited. Whether you use a cell data func or
> not
> > practically makes no difference at all, at least for that
> particular
> > problem.
>
>
> How do you define "visited"? The cellrenderers will not be
> rendered if
> you using set_cell_data_func() and fixed-height mode. A
> GtkTreeIter is
> nevertheless created and destroyed in a loop for each row but
> that's
> insignificant in comparison.
>
> And using set_cell_data_func() avoids copying your data into
> the model,
> which is obviously a performance win.
>
> --
>
> murrayc murrayc com
> www.murrayc.com
> www.openismus.com
>
>
>
>
>
> --
> Please note that according to the German law on data retention,
> information on every electronic information exchange with me is
> retained for a period of six months.
> [Bitte beachten Sie, dass dem Gesetz zur Vorratsdatenspeicherung
> zufolge
> jeder elektronische Kontakt mit mir sechs Monate lang gespeichert
> wird.]
> _______________________________________________
> gtkmm-list mailing list
> gtkmm-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtkmm-list
--
Murray Cumming
murrayc murrayc com
www.murrayc.com
www.openismus.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]