- Sun 02 September 2007
- oss
Son las 2.30 de la mañana y el sentido común me dice que debería estar ya dormido, pero me entretuve con esto y pues quisiera ver su opinión.
[Magpie](http://magpierss.sourceforge.net) y [Simplepie](http://simplepie.org) son un par de librerías para leer fuentes RSS, ambas escritas en lenguaje PHP.
Checando si habia alguna referencia/comparación entre ambas librerías me topé con [este artículo](http://codeninja.de/simplepie_vs_magpie/), en el cual Simplepie salía perdiendo miserablemente.
Revisando las fechas y las versiones, veo que es de finales de 2006, y estan usando una version beta de simplepie. Me dispuse a ver si habian cambiado algo las cosas, bajé los fuentes del mini-benchmark que aplicó este tipo y los modifiqué un poquito:
* Agregué otro ''checkpoint'': cuanto tarda en incluirse la libreria?
* Cambié el require_once de la prueba de magpie por un simple y llano include (los métodos (require|include)_once son mas lentos) para que estuviera parejo
* Agregué un parámetro
Yo me encontraba un poco desilucionado porque según yo, Simplepie era más rápido, y hasta iba a cambiar el RssReader de Jaws a que usara mejor esa lib, pero con los resultados de este tipo pues ya me esperaba yo un cambio tal vez moderado, pero no que contrastara tanto con los resultados que obtuvo él.
Los resultados que salieron fueron lo que yo tenia originalmente pensado, en general simple pie es más rápido y hace un mejor manejo de errores. Las versiones comparadas fueron:
* SimplePie 1.0.1
* MagPie 0.72
Ambas versiones son estables más recientes de ambos códigos.
El benchmark completo [lo pueden bajar de aqui](http://kad.blegh.net/data/files/jaks/simple_vs_mag.tar.bz2).
Temporalmente [tengo una página](http://labs.blegh.net/simple_vs_mag/) donde pueden revisar el benchmark en linea, estoy usando prácticamente el mismo código que el tipo que menciono arriba, el server donde se probó supongo que no esta haciendo mucho por el momento, pero igual si pudiera alguien repetir el benchmark en otro server pues nos daría una idea si esto es regular.
Mis dudas quedan que de una versión 1.0-beta a 1.0.1 pudiera mejorar tanto... La versión de PHP es la 5.1.6.
Mis conclusiones:
* Algo hicieron los desarrolladores de simplepie, encontraron un cuello de botella muy canijo para mejorar tanto
* Algo que me parece raro es que simplepie tarda un poquitín mas en incluirse, y eso que magpie incluye varios archivos desde el archivo principal
* Simplepie maneja un poco mejor los feeds que no encuentra... Magpie manda un warning y solo regresa false.
* El mini-benchmark esta muy verde, pero igual es un escenario bastante común.
Seguiré evaluando si conviene cambiar a simplepie o no, pero por lo pronto pinta bien :-)