Benchmark Frameworks KumbiaPHP vs (Symfony, Zend y CakePHP)

benchmark

UPDATE:

Benchmark actualizado 2017, con los últimas versiones de frameworks php

UPDATE:

Nuevo benchmark con APC y sin con la nueva estructura de directorios. También añadidos más frameworks a la comparativa. Enlace:

KumbiaPHP_vs_(Yii_CodeIgniter_Kohana_Zend_Prado_CakePHP_Symfony)

Mucho más rápido ahora con la nueva estructura

Comenzamos a publicar una serie de Benchmark que hemos realizado a la versión 1.0 Spirit pre beta vs (Symfony, Zend y Cake) la intención es mostrar los avances que hemos obtenido con la última versión (Spirit) de kumbiaphp framework.

Seguimos trabajando para mejorar más la velocidad antes de la versión final. Además de velocidad, se han hecho cambios para que también sea todavía más fácil y rápido su uso, al facilitar el reuso de código en diferentes partes y que se podrán compartir con la comunidad.

La Metodología, cada Framework que se le aplico las pruebas se hace utilizando las mas mínima medidas de configuración y control posible, de manera de hacer efectiva un “Hola Mundo”, el enfoque minimalista mide la capacidad de respuesta de los componentes del Framework. No hay código de aplicación para ejecutar el controlador de las acciones en el Framework de cada uno haga lo menos posible para llamar a una vista. Esto nos muestra el máximo rendimiento posible, añadiendo código sólo reducirá la respuesta.

Cada Benchmark de los Framework’s usa los siguientes scripts o equivalentes…

  • Bootstrap.
  • Configuración por defecto.
  • Front-controller ó dispatcher.
  • Page-controller ó action-controller.
  • Una acción sin código, otras que invocan una vista.
  • Vista estática con solo “Hello World!”.
  • Sin usar cache de Framework.

Se utiliza el Apache por referencia “ab” herramienta para la medición de las solicitudes por segundo, en localhost para negar los efectos de latencia de red, con 10 peticiones concurrentes durante 60 segundos, sin APC. El comando es así:

ab -c 10 -t 60 http://localhost/[path]

Servidor

  • Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz.
  • 3GiB Memoria RAM.
  • 160GiB Disco Duro.
  • Server version: Apache/2.2.11 .
  • S.O. Debian Squeeze.
  • ApacheBench, Version 2.3.

Resultados

Document Path: /phpmark-read-only/baseline/index.html
Requests per second: 2124.27 [#/sec] (mean)
Document Path: /phpmark-read-only/baseline/index.php
Requests per second: 1255.32 [#/sec] (mean)
Document Path: /phpmark-read-only/kumbiaphp-1.0/hola_mundo
Requests per second: 34.07 [#/sec] (mean)
Document Path: /phpmark-read-only/cakephp-1.2.0/benchmark
Requests per second: 15.87 [#/sec] (mean)
Document Path: /phpmark-read-only/cakephp-1.2.1/benchmark
Requests per second: 15.91 [#/sec] (mean)
Document Path: /phpmark-read-only/symfony-1.1.6/web/index.php
Requests per second: 12.60 [#/sec] (mean)
Document Path: /phpmark-read-only/symfony-1.2.1/web/index.php
Requests per second: 10.10 [#/sec] (mean)
Document Path: /phpmark-read-only/symfony-1.2.2/web/index.php
Requests per second: 11.55 [#/sec] (mean)
Document Path: /phpmark-read-only/zend-1.6.2/index.php
Requests per second: 23.71 [#/sec] (mean)
Document Path: /phpmark-read-only/zend-1.7.2/index.php
Requests per second: 23.26 [#/sec] (mean)
Document Path: /phpmark-read-only/zend-1.7.3/index.php
Requests per second: 23.50 [#/sec] (mean)

Ver Detalles del Benchmark de frameworks PHP o toda la información sobre el Benchmark de Frameworks PHP en nuestro wiki.

Gráfica


31 thoughts on “Benchmark Frameworks KumbiaPHP vs (Symfony, Zend y CakePHP)”

  1. bien por kumbia es notable su desempeño, pero le queda mucho camino por recorrer frente a otros frameworks…

  2. Bueno, ya llegó el criticón de turno, jeje.

    Esta comparación no me parece muy válida. Los otros frameworks poseen muchísimas más características (clases y librerías) que las que tiene Kumbia, por lo que seguramente antes de renderizar una página habrán hecho mil chequeos de todo tipo. Ojo, no conozco demasiado los otros frameworks, a mí me gusta mucho kumbia precisamente por su simplicidad. Creo que una comparativa más justa sería Kumbia vs Code Igniter, ya que se parecen más.

    Donde realmente se ve la potencia de un framework no es con un “hola mundo”, sino con una aplicación compleja del orden de más de 200 páginas (una aplicación corporativa), con muchas llamadas al servidor, ahí es cuando se ven realmente los beneficios de unas soluciones frente a otras.

  3. estoy con proclamo. es más que probable que los fw con los que comparas utilicen recursos que no estás explotando con el ejemplo (que por cierto, estaría bien publicar el código y la estructura de cada ejemplo para verificar que son la mínima expresión posible… añadir más código no siempre implica ser más lento)

    ¿tenéis pensado hacer más pruebas e incluir el uso de memoria? creo que sería muy interesante =)

  4. Estimado Proclamo, creo que si es válida la comparación te explico mis motivos, medimos la capacidad con que los componentes del framework inician, si vez los demas framework te daras cuenta que se ve más simple colocar un un “hola mundo” en los framework en comparación que en kumbiaphp.

    aqui medimos la cantidad de request que puede realizar cada framework, es lo mismo que tu dices mostrar 200 páginas, eso es lo que buscamos con los request.

    La intención es medir la capacidad con que los framework inician su entorno (Front-Controller, Dispatcher, etc), por eso la prueba es tan minimalista.

    Existen aplicaciones corporativas funcionando en kumbiaphp de alta demanda y funcionan bien.

    Tú acotación es totalmente válida este benchmark es solo la fase pre beta de la versión 1.0 de kumbiaphp, vendran mas solo queremos que observen los avances en su momento daremos un benchmark interactuando con la BD eso es importante compararlo con otros framework, ya que es el pan nuestro de cada día al momento de desarrollar una aplicación.

  5. y no te olvides avisarme :P
    yo entiendo lo que dicen los muchachos aqui sobre que falta compararlo con codeigniter pero por ahora es obvio q se iba a comenzar con las pruebas mas sencillas. La comparacion con la base de datos va a estar interesante :)

    Ha y tambien concido conque hace falta el codigo para que todos corroboremos :P

    Pero en mi caso ya m decidi a usar kumbia y voy a aprender este el 100%

  6. Epa pana, pero leiste por casualidad al final del libro de symfony todo lo que se puede hacer para hacer más optimo el desempeño de las aplicaciones, como se pueden reconfigurar los helpers, las url, en fin. Ahora tu me dirás: Kumbia tambien hace eso y si se sigue así hasta llegar hasta el uso de codigo php puro, entonces ya no tendríammos frameworks.

    PD: Como ta todo Deivinson, desde cuando no vas para infociencias.

  7. Hola Williams, la intención del benchmark no es medir que se puede o no hacer con los framework comparados, la intención de este test es medir que tan rápidos para iniciar sus componentes (Dispatcher, Router, etc).

    Respecto a las infociencias, espero volver pronto… supe que hace poco se realizo otra edición de esas jornadas.

    Éxitos!

  8. Pingback: Bitacoras.com
  9. Se debe actualizar el manual. Los enlaces no funcionan, por lo que no se puede seguir del todo el tutorial.

  10. Bueno si podemos enumerarlos lo corregimos sería bueno que ustedes que reportan esos fallos lo anotemos en algún lugar en la wiki[1] para irlos arreglando…

    [1] wiki.kumbiaphp.com

  11. Pingback: Bitacoras.com
  12. Hola a todos! en principio deciros que estais haciendo un trabajo increible y si las versiones anteriores ya estaban “completas” y hasta un manual perfecto creo que me voi a sorprender mas cuando vea spirit! solo deciros que pongais arriba en el menu “que es kumbia” tambien “que es spirit” o abladlo dentro en la explicacion porque parece a primera vista que no es lo mismo, hablo desde el punto de que yo no tubiera ni idea de que va esto.. y otra cosa no se si ya hai alguna version superior a la 0.5 y si la hai actualizad lo de manuales y descargas bueno espero que lo entendierais y gracias por vuestro trabajo!

  13. ahi no mas las comparaciones es muy subjetivo el punto de vista de la evaluacion por ejemplo: un caso puntual es que symfony usa APC como requerimiento basico y la evaluacion se descartó APC…

    deberian medirse otros factores de calidad de software, por ejemplo modularidad, reusabilidad de codigo, etc

  14. Oka ganaste deivinson, aunque se puede exprimir aun mas al maximo symfony para que en un benchmark de un simple “hello world” sea mas rapido, pero debo reconocer que la debilidad de symfony es su time request, sin embargo veo por las lista y el foro que uno de los muchos desafios de kumbia es su bajo soporte por la comunidad en comparacion a otros frameworks ya consolidados (no solo symfony, sino prado y zend)

    que estes bien

  15. @malabareand, es cierto q se puede “exprimir” pero un “Hola Mundo” aunque lo veas trivial solo mide el comportamiento interno del framework no mas… donde sin duda que internamente symfony y otros son sumamente lentos!… no lo digo yo, sino los multiples Benchmark que han hecho distintas personas desde KumbiaPHP hicimos los nuestro y ahí los resultados…

    Sobre la comunidad, me gustaría que me dijeras donde haz leído eso… Como sabes la curva de complejidad vs aprendizaje en Symfony (y otros) con respecto a KumbiaPHP son totalmente distintas.

    En KumbiaPHP tenemos una filosofía muy clara y que día a día se práctica, KumbiaPHP igual a fácil… en muchos de los framework que tienen una inmensa comunidad no necesariamente se hacen las cosas bien.. dentro del equipo de desarrollo de KumbiaPHP hemos evaluado muchisimo las nuevas implementaciones que hacemos y no estamos agregando por agregar código sino que funcione bien, rápido y fácil…

    De paso como buen latino, debes saber que somos una comunidad tan grande como cualquier otra, por eso KumbiaPHP es un framework con ñ

    Éxitos!…

  16. Estoy convencido que el Benchmark debió hacerse con la caché de Framework activada porque al final esa será configuración óptima.

    Antes de siquiera ver el gráfico supe que Symfony estaría en los últimos puestos porque de entrada este integra muchas clases que sin duda alguna repercutirán en el performance, no es lo mismo “echo ‘hola'” que valerse de toda una clase “echo $this->print(‘hola’)”. Es por esta misma razón que, cuando menos Symfony, incluye el directorio caché, para mejorar el performance y aún así aprovechar toda la potencia de sus librerías (poo).

    En producción nunca dejarías un proyecto en Symfony sin la caché, sería un suicidio.

    Saludos!!! A ver si se animan a hacerlo con la caché! (ojo, que habilitar la caché no es hacer trampa, es parte misma de la optimización del framework)!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© Kumbia Team