[Python-es] Benchmark de frameworks python

Chema Cortes pych3m4 en gmail.com
Mar Jun 9 20:35:26 CEST 2015


El 9 de junio de 2015, 19:01, Alfonso de la Guarda <alfonsodg en gmail.com>
escribió:

> Chema,
>
> Sí he estado revisando Spark y de hecho puedo considerar emplearlo en
> un futuro, mi referencia con el Machine Learning es que voy a procesar
> datos y necesito que los resultados se entreguen rápidamente sin pasar
> por ORMS, sesiones, etc.
>
> Efectivamente la idea es trabajar con micro servicios y puedo
> emplearlos perfectamente con Flask o Bottle por ejemplo, en este caso
> esa es mi idea en el plazo inmediato y en largo.... todo dependerá de
> la demanda
>

De mi experiencia, creo que necesitas precisar mejor dónde esperas tener
los "cuello de botella". Si tienes ya cocinados los resultados, existen
muchas formas de acelerar la disponibilidad de ellos mediante memcaché y
sistemas distribuidos (SDN, mongo, etc). Si los resultados los tienes que
generar en cada petición, entonces no habrá ningún sistema que se pueda
llamar "escalable" capaz de mejorar una aplicación mal diseñada.

Si tu idea es ir a los microservicios, debería ser más crucial el servidor
web elegido (como gunicorn o tornado en python) que el framework concreto a
usar. Aún así, lo interesante de usar microservicios es diseñarlos sin
centrarse en un lenguaje o framework en específico, y dejar al
desarrollador plena libertad para elegir la tecnología que mejor se ajuste
al problema.





> Saludos,
>
> --------------------------------
> Alfonso de la Guarda
> Twitter: @alfonsodg
> Redes sociales: alfonsodg
>    Telef. 991935157
> 1024D/B23B24A4
> 5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
>
>
> 2015-06-09 11:55 GMT-05:00 Chema Cortes <pych3m4 en gmail.com>:
> > Hola,
> >
> > Aunque entiendo que busques un framework web eficiente para hacer de
> > backend, no veo la relación directa con el rendimiento para procesar
> > información de machine learning.
> >
> > La tendencia actual en programación web pasa por la creación de
> > "microservicios", altamente escalables y que soporten alta demanda de
> > peticiones. Pero si de verdad lo que necesitas es procesar grandes
> > cantidades de información en una solución escalable, mi consejo es que te
> > mires sistemas map-reduce como el apache spark que, hoy por hoy, es lo
> mejor
> > que puedes encontrar. Concretamente, mírate la MLlib:
> >
> >     MLlib: https://spark.apache.org/docs/1.1.0/mllib-guide.html
> >     PySpark:
> > https://spark.apache.org/docs/0.9.1/python-programming-guide.html
> >
> > Si te animas, en EdX.org hay dos cursos sobre PySpark muy interesantes,
> uno
> > acaba de empezar y el otro está a punto:
> >
> >
> >
> https://www.edx.org/course/introduction-big-data-apache-spark-uc-berkeleyx-cs100-1x
> >
> >
> https://www.edx.org/course/scalable-machine-learning-uc-berkeleyx-cs190-1x
> >
> >
> >
> >
> > El 9 de junio de 2015, 0:02, Alfonso de la Guarda <alfonsodg en gmail.com>
> > escribió:
> >>
> >> Hola,
> >>
> >> Como estoy terminando un proyecto que requiere procesar muy
> >> rápidamente la información (machine learning) y aunque -últimamente-
> >> empleo #web2py para casi todo, me encontré con la disyuntiva de
> >> dividirlo en una solución que implemente un backend basado en REST y
> >> un frontend basado en web2py, el asunto era determinar que solución
> >> era actualmente la más rápida para evitar en el corto plazo hacer un
> >> refactoring del proyecto y es así que encontré la cama de pruebas de
> >> rendimiento de TechEmPower
> >>
> >>
> >>
> https://www.techempower.com/benchmarks/#section=data-r10&hw=ec2&test=fortune
> >>
> >> Y me propuse completar el resto de frameworks web basados python y
> >> tomar una decisión basada en rendimiento, dado que lo único que
> >> necesito es un implementar un API rest que trabaje solamente con el
> >> frontend.
> >>
> >> Es así que les comparto el resultado de dicho benchmark, el mismo que
> >> ha sido generado según las especificaciones descritas en el
> >> repositorio de TechEmPower empleando vagrant para replicar su entorno
> >>
> >> http://codebeautify.org/jsonviewer/2e0aac
> >>
> >> El resultado es similar al del URL de la cama de pruebas aunque
> >> incluye casi todos los frameworks web que han agregado varios usuarios
> >> y la sorpresa del caso fue falcon, aunque fue también un gusto ver que
> >> mi querdio Bottle sigue siendo rápido por su diseño minimalista.
> >>
> >>
> >>
> >> Saludos,
> >>
> >> --------------------------------
> >> Alfonso de la Guarda
> >> Twitter: @alfonsodg
> >> Redes sociales: alfonsodg
> >>    Telef. 991935157
> >> 1024D/B23B24A4
> >> 5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es en python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >
> >
> >
> >
> > --
> > Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
> > http://ch3m4.org/blog
> > Buscador Python Hispano: http://ch3m4.org/python-es
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > https://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150609/405eb30d/attachment.html>


Más información sobre la lista de distribución Python-es