Los frameworks de php más rápidos, benchmark 2017

Read More
Gráfica del benchmark de frameworks php

¿Qué es un benchmark?

Según Wikipedia, técnica utilizada para medir el rendimiento de un sistema o componente del mismo …

Anteriormente ya publicamos benchmarks con diferentes frameworks php en el blog y wiki, pero ya son antiguos. Esta vez usaremos los datos de una comparativa independiente, que emplea versiones actualizadas de los frameworks.

Estos datos de rendimiento son resultado de un trabajo serio y bien hecho de Kenjis en Github. En el link pueden encontrar todo el código, ejecutarlo en sus propios ordenadores y ver las gráficas interactivas con mucha información. Además encontrarán los datos del equipo que se usó, incluyendo notas. Finalmente pueden aportar pasando un pull request o indicando un error.

Resultados del benchmark de Kenjis, realizado el 14 de febrero de 2017.

Comparativa de velocidad de los frameworks php

PHP Frameworks Benchmark
Framework PHP Respuestas por segundo Relativo Uso de memoria Relativo
siler-0.6 2,069.69 20.3 0.25 1.0
kumbia-1.0-dev 1,753.60 17.2 0.29 1.2
staticphp-0.9 1,665.28 16.3 0.27 1.1
phalcon-2.0 1,618.39 15.9 0.26 1.1
tipsy-0.10 1,376.97 13.5 0.32 1.3
fatfree-3.5 965.16 9.5 0.41 1.7
codeigniter-3.0 753.09 7.4 0.42 1.7
nofuss-1.2 667.24 6.5 0.40 1.6
slim-3.0 550.43 5.4 0.61 2.5
bear-1.0 502.52 4.9 0.73 3.0
lumen-5.1 415.57 4.1 0.85 3.5
yii-2.0 410.08 4.0 1.32 5.4
zend-expressive-1.0 403.34 4.0 0.75 3.1
cygnite-1.3 369.12 3.6 0.71 2.9
fuel-1.8 344.26 3.4 0.63 2.6
silex-2.0 342.81 3.4 0.78 3.2
phpixie-3.2 267.24 2.6 1.25 5.1
aura-2.0 233.54 2.3 0.88 3.6
cake-3.2 174.91 1.7 1.95 7.9
zendframework-3.0 133.87 1.3 2.24 9.1
symfony-3.0 131.50 1.3 2.18 8.9
laravel-5.3 101.94 1.0 2.83 11.5

Continue reading «Los frameworks de php más rápidos, benchmark 2017»

Casi listos para las nuevas versiones

Estamos limpiando el código para la salida de las versiones oficiales de KumbiaPHP.

¡Si versiones en plural!

Versión 0.9 -> 100% compatible con la beta2 . En breve.
Versión 1.0 -> Quitaremos todas las libs y código obsoleto.

La 1.0 con muy pequeños cambios funcionaran las apps de beta2, saldrá unas semanas después de la 0.9

Hemos añadido una nueva carpeta a la beta2. En principio era para la 1.0, pero hemos decidido que también esté en la beta2(0.9). Carpeta vendor, dentro de esta carpeta se autocargaran todas las libs que usan PSR0: Symfony, Zend, Doctrine, Swiftmail, PHPExcel, etc.

Con PHP 5.2 se podrán usar todas las libs de PEAR,  zend framework 1 y compatibles.
Con PHP 5.3 todas las clases PSR0 con namespaces.

KumbiaPHP 1.0 no usará namespaces, pero si se pueden usar. Se podrá usar composer (PHP5.3) y todas las libs de packagist. Documentaremos su uso, que es muy fácil. (Esta en fase beta).

Nuevo ActiveRecord

ActiveRecord nuevo (PHP 5.3): Va a muy buen ritmo el desarrollo, ya es funcional, es rapidísimo y no usa memoria prácticamente. En principio tendrá 3 clases principales:

  • LiteRecord: Para los que prefieren usar SQL. Un ActiveRecord básico y sin generador de consultas. Mejor rendimiento. Ya es funcional
  • ActRecord: Nuevo ActiveRecord aun puliendo y añadiendo cosas.
  • ActiveRecord: Clase compatible con el actual ActiveRecord. Será lo más compatible posible, para facilitar la migración de apps.

Se han añadido tests unitarios y la calidad del código es excelente.

https://github.com/KumbiaPHP/ActiveRecord (Repositorio en github)

https://scrutinizer-ci.com/g/KumbiaPHP/ActiveRecord/?branch=master (Calidad de código)

Hemos estado trabajando mucho, tanto que según Ohlo.net, el mes pasado eramos el 4º proyecto libre con más movimiento (hot) de cualquier lenguaje. Y segundos en PHP. Esta como un proyecto con muy alto nivel de actividad, que dan sólo al 0,6% de los proyectos libres.

https://www.ohloh.net/explore/projects  (Listado de los proyectos más ‘hot’)

https://www.ohloh.net/p/KumbiaPHP_framework

Y vienen más cambios interesantes, que iremos comentando.

Después nos faltará crear la V2.0, que será prácticamente igual a la 1.0. Sólo que mínimo PHP5.3 y todo el core de kumbia pasará a vendor/kumbia/

La V2.0 será aun más rápida.

Nueva web en KumbiaPHP

Trabajamos para tener la nueva web lista, para la salida de las nuevas versiones.

proto.kumbiaphp.com

Como siempre se agradece ayuda de la comunidad en:

  • Crear código
  • Marcar bugs
  • Terminar la documentación
  • Dar a conocer KumbiaPHP

Gracias por el apoyo a KumbiaPHP

Cache de template en Kumbiaphp

Buenas buenas! les cuento, en la tarde del día miércoles 13 decido pasar por el IRC de #kumbiaphp, para ver si alguien me echaba una mano con una dificultad que tenía.

Conversación va, conversación viene, el gran «joanhey» expuso algunos tips sobre cache que quisiera compartir con ustedes.

Eh aquí fragmentos destacados de la charla:

matiasrosario 17:33:25
el template se cachea solo verdad? cuando el sitio está en produccion

joanhey 17:33:45
no, debes poner en el controller 17:33:56

joanhey 17:35:10
View::cache($time, 'template', $group)

matiasrosario 17:35:17
aaah ok

joanhey 17:35:25
el group es opcional pero muy util, es para agrupar los caches y poderlos borrar si es necesario

joanhey 17:36:14
por ejemplo
si pones 'posts' 17:36:24

joanhey 17:36:37
cuando creas un post nuevo puedes borrar todas las caches de posts y dejar las demas 17:37:12

matiasrosario 17:37:33
excelente!!
si yo cacheo algo y los datos que se muestra alli son dinámicos, qué sucede? 17:38:01
ejemplo, cacheo una vista que es un listado de noticias 17:38:12

joanhey 17:38:28
estara cacheado durante el tiempo que le pusiste

matiasrosario 17:38:36
se van agregando nuevas noticias, te las muestra?

joanhey 17:39:12
si esta cacheado no muestra nada nuevo mientras esta cacheado
pero puedes borrar la cache del grupo noticias 17:39:31
al crear una nueva noticia 17:39:38
y se regenerara a la proxima visita 17:39:55

joanhey 17:40:58
pero recuerda
el cache de template 17:41:02
es solo para datos publicos sin auth 17:41:11
ya que la cache de template se ejecuta lo primero de todo 17:41:24
antes del router, controller 17:41:38

joanhey 17:41:53
asi que no puedes usarlo para datos privados

matiasrosario 17:42:25
claro, entiendo
che, muchas gracias por toda esta info 17:42:35

joanhey 17:42:37
se ejecuta lo pirmero de todo y si existe devuelve el template
no sigue con el proceso del req 17:42:51

matiasrosario 17:43:29
claro, ahi está cuando se ahorra todo el tiempo

joanhey 17:43:47
es rapidisima la cache de template
pero esta pensada para webs o datos publicos 17:44:44

matiasrosario 17:45:12
claro

matiasrosario 17:58:35
cuanto tiempo cachea por defecto kumbia?

joanhey 17:58:49
por defecto KumbiaPHP no cachea nada, solo los metadatos de las tablas (en "temp/cache") para usar en el ActiveRecord 17:59:03
un fw nunca puede decidir cachear 18:01:24
es el programador el que decide que cachear 18:01:34
y por cuanto tiempo 18:01:39

joanhey 18:05:27
cachea el tipo de datos de cada campo
si es string, unique, not null, ... 18:05:45

matiasrosario 18:06:08
uuuh mirá vos todo lo que no conocia

joanhey 18:06:17
1 por cada tabla

matiasrosario 18:06:22
es super util para optimizar la velocidad del sitio todo esto

joanhey 18:06:46
no sirve para todos los casos
pero si en muchos 18:06:50
es como cachear los partials 18:07:06

matiasrosario 18:07:08
claro, siempre y cuando no haya un auth de por medio

joanhey 18:07:11
es muy util
eso es solo para la cache de template (lo de auth)
yo no suelo usar cache de template
porque KumbiaPHP es realmente rapido
pero en algunas webs si puede ser util
pero por ejemplo el cache de partials si lo uso mucho 
tengo partials que muestran RSS
otros el tiempo 18:08:46
y estan cacheados para no solicitar los datos a la web cada vez
tambien para datos de tablas 18:09:13
por ejemplo
partials para: ultimas noticias, ultimos comentarios,.... 
que van en muchas paginas 
solo si se añade una noticia 18:10:12
borro el cache de noticias
o si se añade un comentario
el cache de comentarios
el unico que no es valido con el auth es el de template 18:11:12
los demas caches si

matiasrosario 18:20:25
bárbaro hermano, esta charla se merece un post

Webs hechas con KumbiaPHP – Parte III

Llegamos a la tercera entrega de estos post, donde rescatamos aquellas páginas webs hechas en KumbiaPHP ¿recuerdas la parte I y la parte II? habían buenos trabajos y en este post no será diferente.

El dato curioso, es que todas estas páginas web, en su mayoría están desarrolla sobre la futura versión de KumbiaPHP, es decir la beta2 esto dice mucho de la estabilidad que ofrece el framework para asumir un desarrollo a cualquier nivel.

Simacel es una comunidad en torno a los medios alternativos de Colombia, además sabemos que su web esta operativa con KumbiaPHP desde hace bastante tiempo. Considerando que el desarrollador es un gran amigo nuestro @HenryStivens. Un gran trabajo hecho.

Simacel

Els Pastorests una web nueva de origen catalán y como característica común de estas páginas, es que son muy rápidas.

La última de esta lista Joventut de la Faràndula, una web también nueva y como llama la atención que es de origen catalán, igual que la anterior. A nuestros amigos Españoles le agrada KumbiaPHP :)

En esta web la primera vez se ve un vídeo, pulsa en el link de debajo el vídeo para ver la web completa.

Webs Hechas con KumbiaPHP – Parte II

En el post anterior mostramos varias webs hechas con KumbiaPHP Framework . Ahora tenemos una nueva lista, es importante destacar que todas estas webs, están realizadas con la versión 1.0 Beta1 Codename Spirit

SigueMiLink es una forma sencilla de acortar URLs para enviarlas por correo, compartirlas en tu red social favorita (Facebook, Tuenti, etc.) o apuntarlas en un papel!. Siguemilink ha sido reescrito de cero usando KumbiaPHP en la versión Spirit, con el cual se ha podido realizar bastantes mejoras en la aplicación.

Universidad Peruana Unión el Autor nos comenta.

Beta-UPeU un portal desarrollado con KumbiaPHP, realmente un éxito la puesta en marcha, pensé que iba colgarme los servidores con dicha aplicación pero no fue así. Es mi primera website kumbiera y puedo dar fé de la grandiosa herramienta con la cual contamos los kumbieros…

Nutrar está conformado por un equipo de profesionales de reconocida experiencia en el sector de la Salud, con un importante conocimiento en el desarrollo y estructuración de programas y servicios relacionados con la promoción de la Salud. En esta web podemos apreciar la integración y el manejo de jQuery como framework de JavaScript que mejora la experiencia del usuario con la aplicación.

Super Mundial, es un medio de comunicación digital deportivo que sigue muy de cerca el antes, durante y después del mundial de Fútbol Sudafrica 2010. Además de la información constante a través del sistema de noticias, nuestro objetivo es involucrar al usuario de nuestro sitio en el torneo mas importante del planeta, ofreciendo Vídeos, Fotos, Quiniela , Trivias, Encuestas, Transmisión en VIVO y mucho más.