Página 1 de 2
Idea para mejorar el rendimiento del buscador
Publicado: 06 Abr 2015, 20:54
por divadr
Hola, como bien sabréis, el buscador general (el que modifique yo) es un poco lento, sobretodo si tienes activados muchos canales en los que buscar.
Pues dándole vueltas el otro día se me ocurrió una idea: Que pasaría si en vez de lanzar las búsquedas una después de otra las lanzamos todas juntas en Threads diferentes?... así que modifique un poco el código y la sorpresa fue que funcionaba bien, con un rendimiento muy superior, pasaba de hacer una búsqueda en todos los canales en 1 minuto y pico, a tardar tan solo unos 20-30 segundos...
después de trastear un poco... me di cuenta que a veces guardaba algún error aleatorio en el log.... el error es al intentar leer/escribir el fichero de cookies a la vez desde varios Threads... aunque parece que el resultado sigue siendo correcto, y no muestra ningún error en pantalla...
esto seria fácilmente solucionable, si en vez de guardar todas las cookies en un fichero las guardase en un fichero para cada dominio... así nunca intentarían 2 Threads leer el mismo fichero, cambiando esto en el scrapertools.py parece que va perfecto...
de todos modos os lo adjunto para que lo probéis... ya que sin cambiar nada mas que el buscador funciona muy bien... lo único que hay que tener en cuenta es que es imposible entender el log generado durante la busqueda, ya que un montón de Threads escribiendo a la vez, pues los mensajes se mezclan y no siguen un orden.
He añadido en los ajustes del buscador la opción de Activar o desactivar el MultiThread... por si en alguna plataforma no anda bien.
Re: Idea para mejorar el rendimiento del buscador
Publicado: 06 Abr 2015, 22:25
por robalo
Mu interesante, a ver si puedo probarlo pronto. La salida del puente ha traido a todo el mundo relajao pero con prisas para todo
Muchas gracias divadr
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 08:49
por supercopito
Estoy probando tu buscador pero me arroja un error te pego el .log
extract_item_from_url()
INFO 0704 09:48:15 launcher ruta=/mediaserver/QWN0aXZhci9EZXNhY3RpdmFyIENhbmFsZXN8Pnw8fHw+fDx8YnVzY2Fkb3J8Pnw8fENhbmFsZXN8Pnw8fGRpcmVjdG98Pnw8fHw+fDx8fD58PHx8Pnw8fGxpc3R8Pnw8fA==
INFO 0704 09:48:15 launcher item base64=QWN0aXZhci9EZXNhY3RpdmFyIENhbmFsZXN8Pnw8fHw+fDx8YnVzY2Fkb3J8Pnw8fENhbmFsZXN8Pnw8fGRpcmVjdG98Pnw8fHw+fDx8fD58PHx8Pnw8fGxpc3R8Pnw8fA==
INFO 0704 09:48:15 launcher item: channel=buscador, action=Canales, title=Activar/Desactivar Canales, url=, server=directo, category=
INFO 0704 09:48:15 launcher getitems
ERROR 0704 09:48:15 launcher <type 'exceptions.ImportError'>
ERROR 0704 09:48:15 launcher cannot import name buscador
ERROR 0704 09:48:15 launcher <traceback object at 0x02142E68>
Aparece lo de activar y desactivar todos los canales porque intento que los busque de todos haber el tiempo de respuesta.
Y el multithread que es otra prueba que he hecho pulse las veces que pulse siempre esta desactivado.
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 10:27
por robalo
aún no lo he probado pero el error
ERROR 0704 09:48:15 launcher <type 'exceptions.ImportError'>
ERROR 0704 09:48:15 launcher cannot import name buscador
ERROR 0704 09:48:15 launcher <traceback object at 0x02142E68>
solía aparecer antes de esta versión sin afectar a la búsqueda
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 10:47
por divadr
A mi no me da ningun error sobre sbmc y html... luego me lo miro.. pero... que version estas usando?
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 11:54
por robalo
divadr ese error, lo he visto bastente en los logs de cualquier versión pero nunca ha influido en la búsqueda, al no influir en los resultados no le he dado mucha importancia y no lo he investigado, siempre he pensado que se debía al error del serach de algún canal a sabiendas que de que era posible que me engañara a mi mismo, pero si funciona bien la búsqueda global, que le den al mensaje

Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 12:05
por divadr
Ya se lo que pasa... modifique alguna linea del bsucador para adaptarlo a las versiones que he posteado kodi/html... y emtonces no funciona en las versiones oficiales... luego subire el buscador para la version oficial... si lo probais con la que he subido hace unos dias vereis que funciona... corrigo las cuatro lineas que hay quecambiar y lo subo.
Esque ahora mismo tengo tantas versiones a medias con tantas pruebas que he echo... que es un poco un lio...
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 12:07
por divadr
robalo escribió:divadr ese error, lo he visto bastente en los logs de cualquier versión pero nunca ha influido en la búsqueda, al no influir en los resultados no le he dado mucha importancia y no lo he investigado, siempre he pensado que se debía al error del serach de algún canal a sabiendas que de que era posible que me engañara a mi mismo, pero si funciona bien la búsqueda global, que le den al mensaje

Da esos errores por el metodo que usa para importar los canales try... except en diferentes carpetas... pero eso yo en mi launcher lo he corregido comprobando si existe el archivo antes de intentar importarlo
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 13:15
por robalo
Estupendo así tendremos más limpito el log

a ver si puedo probar esta noche y si compatibilizas mejor, menos hay que tocar
Gracias divadr
Re: Idea para mejorar el rendimiento del buscador
Publicado: 07 Abr 2015, 16:20
por divadr
Bueno aquí está, este tendría que funcionar en la versión de xbmc oficial y HTML,
en el buscador del primer post al realizar la búsqueda sale un dialogo de progreso para ver por donde va y poder cancelarlo si se queda pillado, como en la versión anterior de HTML no soporta diálogos, aquí lo he quitado, en la versión que he subido de XBMC/HTML que incluye la herramienta guitools.py para mostrar diálogos tanto en xbmc como en HTML. podeis usar el que esta en el primer post, porque funcionara mejor.