pixel
pixel
Portada Noticias Ver comentarios. Leída 1647 veces.
Optimizando más y más.
Optimizando el scraper del tracker.
Escrito por Reboot el 07.07.2008.
A nadie le importa una mierda, pero...

... Pero hasta hace un par de días si pinchabas en el menú "Tracker", ibas a un listado generado al vuelo que por extrañas razones sólo me veía los torrents que tenía hospedados en mi tracker... Y tardaba un cojón.

El caso es que me puse a optimizar un poco el código de la implementación de una librería que lee los torrents y los scrapes de los trackers y saca de ahí los datos de los mismos. La verdad es que arreglando un poco el código conseguí mejoras del 50% de velocidad, pero aún me quedaba una cosilla pendiente.

Resulta que trackers como el de Frozen-layer escupen el scrape comprimido, cosa que no tenía en cuenta la implementación que tenía de la librería de decodificado de scrapes. Y cual fue mi sorpresa que cuando consigo arreglar el problema, el servidor se queda frito durante varios minutos, hasta que por fin, escupe los datos.

La optimización de la implementación de la librería no era suficiente: Tenía que optimizar la propia librería.

Pero es que la librería es un ejemplo de cómo no se debe hacer algo. Variables monocarácter, ausencia total de comentarios del código, y lo peor... generaba un diccionario a base de ir iterando por todo el scrape carácter por carácter para ir sacando los datos.

Imagináos cuando el scrape es como el de Frozen, de más de 600 Kas y tiene que ir iterando por toda la cadena, para alante, para atrás, carácter por carácter. Una bazofia. El sistema de por sí es lento con scrapes pequeños, pero con strings tan enormes, se hace demencial.

Total, que hoy me he dedicado en mi tarde libre a leerme las bases del protocolo de scrapping de BitTorrent y crear un sistemilla que, lo primero, explote el scrape en pedazos más pequeños e ir rompiendo usando algún reg_exp y otros métodos más waltrapillas.

Es cierto, que no es el código más limpio que he hecho, aun tengo que pensármelo mejor, pero... Ahora un scrape completo desde cero de todos los torrents que llevo, me cuesta parsearlo menos de 1 segundo y medio.

¿A que molo?


Palabras clave. Tracker (1) Optimización (2) Kmhg (29)
COMENTARIOS
AÑADIR UN COMENTARIO
Nombre:
Se permite el uso de ciertos BBcodes:
[b], [i], [u], [s], [br], [url], [img],
[spoiler], [irony]

Emoticonos disponibles:
    :hola: >_< :silbar: x3 :latigo: :3 : palito: :arbusto:
E-mail: (*)
URL:
Recuerda mis datos para la próxima vez:
Comentario:
ENVIAR   BORRAR    TRADUCSION
(*)Nota: La dirección de e-mail permanecerá oculta y sólo se usará para conseguir (si tienes disponible) tu gravatar.
pixel