Marco Islas Blog




Speed up gtk.ListStore

Alguien sabe de algun algoritmo o forma para acelerar la insersion de elementos en un ListStore?. He estado haciendo pruebas con Christine sobre una lista de ~14000 canciones y mi pobre maquinita tarda entre 20 y 24 segundos para llenar el ListStore.
Se, que podria mostrar Christine y dejar que una llamada con idle_add haga la chamba, es decir, christine se mostraria en menos de 1 segundo, pero el idle_add me retrasa mas la carga de la lista a unos 2 minutos.
Alguien con algun comentario, enlace o similar, seria mas que apreciado.

#1 Re: Speed up gtk.ListStore

X Bit Carry, <E-Mail> / Thursday 06 December 2007 4:25pm  
avatar

Oye Markuz, has pensado filtrar las listas? Es decir, recuerdo que el WMP tiene opciones para buscar archivos e insertarlos a la lista, buscar archivos y s???????lo los nuevos insertarlos a la lista, o buscar archivos nuevos y s???????lo agregar enlaces a la lista. Podr??????­a funcionar?

[ Reply (1) ]

#1.1 Re: Re: Speed up gtk.ListStore

markuz, <E-Mail> / Friday 07 December 2007 8:20am  
avatar

No entiendo tu punto....

[ Reply (0) ]

#2 Ya se que no es la mejor respuesta

garaged, <E-Mail> / Friday 07 December 2007 8:06am  
avatar

Pero !! peroooo
jajaja
Amarok se tarda 1 min y medio en cargar la lista completa de casi 10000 canciones, as??????­ que supongo su tecnica es buena, aunque debo decirte (por si no lo sabes) que en realidad usa una base de datos en sqlite, tambien soporta mysql), no has pensado en hacer algo similar, acelera mucho las cosas sobre todo al buscar, filtrar etc, a mi me gusta, y aunque somos de filosifias distintas en cuanto al reproductor que usamos, a mi no me molesta demasiado tener que esperar un par de minutitos a que se cargue la lista completa.
Que tan complicado es el codigo ?? nunca lo he visto, creo que deberia darme una vuelta pa ver que pex, aunque no soy muy bueno con C.

[ Reply (0) ]

#3 Re: Speed up gtk.ListStore

Pedro Guridi, <E-Mail> / Tuesday 15 January 2008 12:46pm  
avatar

Hola, que tal?
muy buenos tus posts.., me sacaste de un apuro una par de veces con pygtk!, gracias.
Justamente yo tb ando buscando una manera de optimizar un GtkTreeview, pues insertar 20.000 registros desde sqlite me tarda algo de 10segs, y necesito manejar alrededor de los 60.000 registros.
Si bien lo mio lo estoy haciendo en C#, es un issue que creo tiene Gtk en gral.
Algunas posibles mejoras, puede ser usar fixedheightmode para el treeview, lo cual deberia agilizar un poco.
Y lo otro que se puede hacer, es desligar el model del treeview, cargar los datos al model.., y luego enlazar de nuevo el model.
Lo poco que encontre googleando es:
De banshe, en C#.., un reemplazo para el treeview, capaz sirve la idea:
http://abock.org/2007/06/27/my-hack-week-the-new-banshee/
En C, ya un extremo, como el titulo dice.., un poquito optimizado...
http://pvanhoof.be/blog/index.php/2006/01/13/three-million-rows-in-a-gtktreeview
espero algo sirva.., y si encuentras alguna manera de hacerlo.., postealo!.. asi salgo de esta! jeje..,
saludos!

[ Reply (0) ]

#4 Re: Speed up gtk.ListStore

Jose Jorge Lorenzo Vila, <E-Mail> / Monday 18 February 2008 4:53pm  
avatar

Se me ocurre una bobada, pero que a mi me resolvi??????? exactamente para adicionar 15000 entradas a un ListStore y la solucion fue precisamente linkear el treeview con el model despues que este estuviera lleno, realmente y en honor a la verdad no fue para usuarlo en un treeview, sino en un EntryCompletion, pero sin esta variante era muchisimo m???????s lento.
saludos y felicidades por tu blog que me ha dado mucha pulpa.

[ Reply (1) ]

#4.1 Re: Re: Speed up gtk.ListStore

markuz, <E-Mail> / Tuesday 19 February 2008 3:26pm  
avatar

No es una bobada, simplemente haces que el treeview (o el visor que vayas a utilizar) aloje los espacios 1 vez cuando el modelo esta lleno, en cambio, si los enlazas primero y llenas el modelo despues el treeview tiene que alojar y mostrar los cambios del modelo.
Obviamente, esto ya lo he pensado e implementado desde hace mucho. Aun asi, cuando mas elementos tiene el modelo mas lento se vuelve la insersion.

[ Reply (0) ]

Leave a Comment

Write the captcha code you are seeing.

Comment XML feeds: RSS | Atom




twitter logo




Recent Comments On Blog

avatar
Marco Antonio Islas Cruz on
 
avatar
Marco Antonio Islas Cruz on
 
avatar
Marco Antonio Islas Cruz on
 Getting ready
avatar
Marco Antonio Islas Cruz on
 Python: Create win32 services using Python and py2exe
avatar
jopython@gmail.com on
 Python: Create win32 services using Python and py2exe
avatar
yodenuevo on
 Holy Shit!
avatar
markuz on
 Holy Shit!
avatar
yo on
 Holy Shit!
avatar
Gustavo on
 Things that happen last week
avatar
Marco Antonio Islas Cruz on
 Christine: rola_christine.py