{"id":1395,"date":"2017-04-19T12:51:50","date_gmt":"2017-04-19T11:51:50","guid":{"rendered":"https:\/\/www.kumbiaphp.com\/blog\/?p=1395"},"modified":"2020-04-29T23:38:57","modified_gmt":"2020-04-29T22:38:57","slug":"frameworks-php-benchmark","status":"publish","type":"post","link":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/","title":{"rendered":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017"},"content":{"rendered":"<h2>\u00bfQu\u00e9 es un benchmark?<\/h2>\n<p><a href=\"https:\/\/es.wikipedia.org\/wiki\/Benchmark_(inform%C3%A1tica)\">Seg\u00fan Wikipedia<\/a>,\u00a0t\u00e9cnica utilizada para medir el rendimiento de un sistema o componente del mismo &#8230;<\/p>\n<p>Anteriormente ya publicamos\u00a0benchmarks con\u00a0diferentes frameworks php en el <a href=\"https:\/\/www.kumbiaphp.com\/blog\/2009\/03\/27\/benchmark_frameworks_kumbiaphp_vs_symfony_zend_cakephp\/\">blog<\/a> y <a href=\"http:\/\/wiki.kumbiaphp.com\/Frameworks_Benchmark_KumbiaPHP_vs_(Yii_CodeIgniter_Kohana_Zend_Prado_CakePHP_Symfony)\">wiki<\/a>, pero ya son antiguos. Esta vez usaremos los datos de una comparativa independiente, que emplea versiones actualizadas de los <em>frameworks<\/em>.<\/p>\n<p>Estos datos\u00a0de rendimiento son resultado de un trabajo serio y bien hecho de <a href=\"https:\/\/github.com\/kenjis\/php-framework-benchmark#results\">Kenjis en Github<\/a>. En el link pueden encontrar todo el c\u00f3digo, ejecutarlo en sus propios ordenadores y ver las gr\u00e1ficas interactivas con mucha informaci\u00f3n. Adem\u00e1s encontrar\u00e1n los datos del equipo que se us\u00f3, incluyendo notas. Finalmente pueden aportar pasando un\u00a0pull request\u00a0o indicando un error.<\/p>\n<p>Resultados del benchmark de Kenjis, realizado el 14 de febrero de 2017.<\/p>\n<h2>Comparativa de velocidad de los frameworks php<\/h2>\n<table>\n<caption class=\"caption\">PHP Frameworks Benchmark<\/caption>\n<thead>\n<tr>\n<th>Framework PHP<\/th>\n<th style=\"text-align: center;\" scope=\"col\" align=\"right\">Respuestas por segundo<\/th>\n<th style=\"text-align: center;\" scope=\"col\" align=\"right\">Relativo<\/th>\n<th style=\"text-align: center;\" scope=\"col\" align=\"right\">Uso de memoria<\/th>\n<th style=\"text-align: center;\" scope=\"col\" align=\"right\">Relativo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>siler-0.6<\/td>\n<td style=\"text-align: right;\" align=\"right\">2,069.69<\/td>\n<td style=\"text-align: right;\" align=\"right\">20.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.25<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.0<\/td>\n<\/tr>\n<tr>\n<td>kumbia-1.0-dev<\/td>\n<td style=\"text-align: right;\" align=\"right\">1,753.60<\/td>\n<td style=\"text-align: right;\" align=\"right\">17.2<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.29<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.2<\/td>\n<\/tr>\n<tr>\n<td>staticphp-0.9<\/td>\n<td style=\"text-align: right;\" align=\"right\">1,665.28<\/td>\n<td style=\"text-align: right;\" align=\"right\">16.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.27<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.1<\/td>\n<\/tr>\n<tr>\n<td>phalcon-2.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">1,618.39<\/td>\n<td style=\"text-align: right;\" align=\"right\">15.9<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.26<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.1<\/td>\n<\/tr>\n<tr>\n<td>tipsy-0.10<\/td>\n<td style=\"text-align: right;\" align=\"right\">1,376.97<\/td>\n<td style=\"text-align: right;\" align=\"right\">13.5<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.32<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.3<\/td>\n<\/tr>\n<tr>\n<td>fatfree-3.5<\/td>\n<td style=\"text-align: right;\" align=\"right\">965.16<\/td>\n<td style=\"text-align: right;\" align=\"right\">9.5<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.41<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.7<\/td>\n<\/tr>\n<tr>\n<td>codeigniter-3.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">753.09<\/td>\n<td style=\"text-align: right;\" align=\"right\">7.4<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.42<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.7<\/td>\n<\/tr>\n<tr>\n<td>nofuss-1.2<\/td>\n<td style=\"text-align: right;\" align=\"right\">667.24<\/td>\n<td style=\"text-align: right;\" align=\"right\">6.5<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.40<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.6<\/td>\n<\/tr>\n<tr>\n<td>slim-3.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">550.43<\/td>\n<td style=\"text-align: right;\" align=\"right\">5.4<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.61<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.5<\/td>\n<\/tr>\n<tr>\n<td>bear-1.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">502.52<\/td>\n<td style=\"text-align: right;\" align=\"right\">4.9<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.73<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.0<\/td>\n<\/tr>\n<tr>\n<td>lumen-5.1<\/td>\n<td style=\"text-align: right;\" align=\"right\">415.57<\/td>\n<td style=\"text-align: right;\" align=\"right\">4.1<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.85<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.5<\/td>\n<\/tr>\n<tr>\n<td>yii-2.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">410.08<\/td>\n<td style=\"text-align: right;\" align=\"right\">4.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.32<\/td>\n<td style=\"text-align: right;\" align=\"right\">5.4<\/td>\n<\/tr>\n<tr>\n<td>zend-expressive-1.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">403.34<\/td>\n<td style=\"text-align: right;\" align=\"right\">4.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.75<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.1<\/td>\n<\/tr>\n<tr>\n<td>cygnite-1.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">369.12<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.6<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.71<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.9<\/td>\n<\/tr>\n<tr>\n<td>fuel-1.8<\/td>\n<td style=\"text-align: right;\" align=\"right\">344.26<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.4<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.63<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.6<\/td>\n<\/tr>\n<tr>\n<td>silex-2.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">342.81<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.4<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.78<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.2<\/td>\n<\/tr>\n<tr>\n<td>phpixie-3.2<\/td>\n<td style=\"text-align: right;\" align=\"right\">267.24<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.6<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.25<\/td>\n<td style=\"text-align: right;\" align=\"right\">5.1<\/td>\n<\/tr>\n<tr>\n<td>aura-2.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">233.54<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">0.88<\/td>\n<td style=\"text-align: right;\" align=\"right\">3.6<\/td>\n<\/tr>\n<tr>\n<td>cake-3.2<\/td>\n<td style=\"text-align: right;\" align=\"right\">174.91<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.7<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.95<\/td>\n<td style=\"text-align: right;\" align=\"right\">7.9<\/td>\n<\/tr>\n<tr>\n<td>zendframework-3.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">133.87<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.24<\/td>\n<td style=\"text-align: right;\" align=\"right\">9.1<\/td>\n<\/tr>\n<tr>\n<td>symfony-3.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">131.50<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.18<\/td>\n<td style=\"text-align: right;\" align=\"right\">8.9<\/td>\n<\/tr>\n<tr>\n<td>laravel-5.3<\/td>\n<td style=\"text-align: right;\" align=\"right\">101.94<\/td>\n<td style=\"text-align: right;\" align=\"right\">1.0<\/td>\n<td style=\"text-align: right;\" align=\"right\">2.83<\/td>\n<td style=\"text-align: right;\" align=\"right\">11.5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!--more--><\/p>\n<h2>Las diferencias de velocidad son m\u00e1s grandes<\/h2>\n<p>Como muy bien indica Kenjis, hay 2 notas debajo de la tabla de resultados de velocidad de los frameworks:<\/p>\n<h3>Nota 1: Estos resultados son con la extensi\u00f3n <strong>Phalcon.so<\/strong><\/h3>\n<p>Si no cargas \u00abphalcon.so\u00bb, las respuestas por segundo aumentar\u00e1n un poco excepto para phalcon.<\/p>\n<p>\u00bfCu\u00e1nto exactamente? \u00a0Phalcon hace php y cualquier framework php, aproximadamente un 10% m\u00e1s lento. <a href=\"https:\/\/github.com\/kenjis\/php-framework-benchmark\/issues\/8\">Ver issue #8<\/a>. As\u00ed que todos los dem\u00e1s frameworks php, tienen una desventaja de ~10%.<\/p>\n<h3>Nota 2: Este benchmark est\u00e1 limitado por la velocidad de <strong><abbr class=\"abbr\" title=\"Apache bench\">ab<\/abbr><\/strong><\/h3>\n<p>El <a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/programs\/ab.html\">Apachebench<\/a> es suficientemente r\u00e1pido para los frameworks m\u00e1s lentos, sin embargo se queda corto con los m\u00e1s veloces. <a href=\"https:\/\/github.com\/kenjis\/php-framework-benchmark\/issues\/62\">Ver issue #62<\/a>. En este caso, la herramienta <em><a href=\"https:\/\/github.com\/wg\/wrk\">wrk\u00a0<\/a><\/em>es una excelente opci\u00f3n para realizar bechmarks, pues es moderna y multihilo, lo cual no marca mucha diferencia con los frameworks m\u00e1s lentos, pero s\u00ed en los m\u00e1s r\u00e1pidos, que tienden a disparar exponencialmente sus tiempos de respuestas por segundo.<\/p>\n<h2>Hola mundo benchmark<\/h2>\n<p>Hay mucha pol\u00e9mica sobre los benchmarks que s\u00f3lo usan una salida de \u00abHola mundo!\u00bb. (<a href=\"https:\/\/www.sitepoint.com\/community\/t\/latest-php-framework-benchmarks-with-source-code\/117218\">Aqu\u00ed ten\u00e9is una buena discusi\u00f3n<\/a> sobre este tema.)<\/p>\n<p>Que si no tienen nada que ver con una aplicaci\u00f3n real, que no usan cache ni templates, que para eso se usa php puro, en fin, existen mil excusas y caracter\u00edsticas a analizar.<br \/>\nEntre ellas, que los\u00a0<strong>micro frameworks<\/strong> (siler, slim, lumen, silex,..) tienen ventajas en estos tests sobre los\u00a0<strong>full stack frameworks<\/strong>\u00a0(symfony, laravel, kumbiaphp, cakephp,\u2026), y en parte tienen raz\u00f3n, pues este tipo de benchs no miden la aplicaci\u00f3n ni la velocidad de la cache, as\u00ed que estos ser\u00edan otros bechmarks a realizar.<\/p>\n<p>Esta comparativa mide el <strong>m\u00e1ximo rendimiento posible del framework<\/strong> sin cachear, de lo contrario ser\u00eda un bench de la cache, que todos tienen y pueden usar.\u00a0De todas formas para <strong>crear la cache de un \u00abHola mundo!\u00bb, requerir\u00e1n el tiempo y memoria que se indica en esta comparativa<\/strong>. Adem\u00e1s es necesario crear la cache e invalidarla, esto a\u00f1ade complejidad en partes de tu aplicaci\u00f3n que no lo necesitan. Incluso en algunas aplicaciones, no se puede usar cache eficientemente.<\/p>\n<p>Soluci\u00f3n de algunos frameworks a estos datos: si quito este componente y este otro, ser\u00e1 m\u00e1s r\u00e1pido. Si no necesita ese componente, \u00bfPor qu\u00e9 se ejecuta? Hace mucho tiempo que usamos <em>autoload<\/em> en php, para cargar las clases cuando se necesitan. <strong>\u00bfFallo de dise\u00f1o o exceso de\u00a0ingenier\u00eda?<\/strong><\/p>\n<p>Estamos de acuerdo que <strong>un \u00ab<em>hola mundo\u00bb solamente,\u00a0<\/em>no es suficiente<\/strong>, se deben hacer m\u00e1s benchmarks, y aunque como veremos m\u00e1s adelante, las diferencias de velocidad se suelen mantener en otros tipos de benchmarks, no se puede negar que esto dice mucho sobre un framework.<\/p>\n<p>Ejemplo: Framework A -&gt; hola mundo: 1.000 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr>\u00a0| complejo: 400 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr>, Framework B -&gt; hola mundo: 500 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr>\u00a0|\u00a0complejo: 400 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr>. \u00bfQu\u00e9 framework es m\u00e1s eficiente?<\/p>\n<h2>Otros benchmarks de frameworks<\/h2>\n<p>Crear <em>benchmarks<\/em> correctos es todo un arte y se necesitan conocimientos espec\u00edficos, para lograr comparar en igualdad de condiciones o como se dice en el <em>argot popular,<\/em> comparar manzanas con manzanas y no con peras.<\/p>\n<p>Hemos visto de todo durante estos a\u00f1os, desde uno que el m\u00e1s r\u00e1pido era porque no recib\u00eda m\u00e1s que un error 500 del servidor, hasta otros que uno s\u00f3lo enviaba \u00abHola mundo!\u00bb y otros todo un template con css incluido y dentro el \u00abHola mundo!\u00bb. Alguno de estos casos, se han visto en los m\u00e1s que discutibles benchs propios de phalcon y symfony.<\/p>\n<h3>TechEmpower benchmark (Actualizaci\u00f3n)<\/h3>\n<p>Un gigante <em>benchmark<\/em> muy completo y serio,\u00a0que mide el <strong>rendimiento m\u00e1s parecido a una aplicaci\u00f3n real<\/strong> es de <a href=\"https:\/\/www.techempower.com\/benchmarks\/\">TechEmpower<\/a>. Compara el rendimiento de web frameworks de cualquier lenguaje, usando acceso a base de datos y <em>wrk,<\/em>\u00a0con PHP5, PHP7 y HVMM. Este benchmark tambi\u00e9n es completamente abierto para que la gente colabore, y necesitan ayuda para mantener los m\u00e1s de 250 frameworks. <strong>Curiosamente el ratio de velocidad es muy parecido a este de <em>Hola mundo<\/em><\/strong>\u00a0(no se f\u00eden de los datos del round 13).<\/p>\n<p><span style=\"text-decoration: line-through;\">Quer\u00edamos a\u00f1adir <em>KumbiaPHP<\/em> a este <em>bench<\/em> (y lo haremos en breve), pero vimos fallos de configuraci\u00f3n en el c\u00f3digo para\u00a0<a href=\"http:\/\/www.php.net\/\">PHP<\/a>. As\u00ed que comprobamos los datos de php5-raw\u00a0con 1 consulta a la base de datos, <strong>round #12: 116,628 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr> y round #13:\u00a040,046 <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr><\/strong> (8\\). Enviamos los <em>commits<\/em> de correcci\u00f3n, del php.ini y del nginx (aun se puede mejorar m\u00e1s esta configuraci\u00f3n) y tambi\u00e9n se ha realizado el cambio para que cada <abbr class=\"abbr\" lang=\"en\" title=\"Framework\">fw<\/abbr> tenga su propio <em>php.ini<\/em>. En el pr\u00f3ximo round #14 ver\u00e1n brillar otra vez a PHP frente a otros lenguajes.<\/span><\/p>\n<p>Las mejoras a la configuraci\u00f3n de PHP fueron aceptadas, logramos agregarlo y en el round 16 hemos aparecido en el top: <a href=\"https:\/\/www.techempower.com\/benchmarks\/#section=data-r16&amp;amp;hw=ph&amp;amp;test=db&amp;amp;l=hr9zpb\">Round 16 results &#8211; TechEmpower Framwework Bechmarks<\/a><\/p>\n<p>Publicaremos otro art\u00edculo <span style=\"text-decoration: line-through;\">en a\u00f1adir KumbiaPHP<\/span>, y explicaremos las notas de este <em>benchmark<\/em>, que son individuales para cada <em>framework<\/em>.<\/p>\n<h3>Kenjis y ORM benchmarks<\/h3>\n<p>Kenjis tiene otros bechmarks de php muy interesantes:\u00a0<a href=\"https:\/\/github.com\/kenjis\/user-agent-parser-benchmarks\">User Agent Parser<\/a> y <a href=\"https:\/\/github.com\/kenjis\/php-orm-benchmark\">PHP <abbr class=\"abbr\" lang=\"en\" title=\"Object-relational mapping\">ORM<\/abbr><\/a>\u00a0.\u00a0Fran\u00e7ois Zaninotto <a href=\"https:\/\/github.com\/Big-Shark\/forked-php-orm-benchmark\">php-orm<\/a>\u00a0, es un <em>fork<\/em> m\u00e1s actualizado y con m\u00e1s <abbr class=\"abbr\" title=\"Mapeo de objetos relacional\">ORM<\/abbr>s. Si unimos un<em> framework<\/em> lento con un <em>ORM<\/em> lento, ser\u00e1 siempre una mala combinaci\u00f3n. Hoy en d\u00eda casi todos los <em>frameworks<\/em> permiten usar cualquier <em>ORM<\/em>. Pr\u00f3ximamente a\u00f1adiremos el nuevo <em>ActiveRecord<\/em> de <em>KumbiaPHP<\/em> a estas comparativas (rapid\u00edsimo y sin uso de memoria pr\u00e1cticamente).<\/p>\n<p>Esperamos que Kenjis use <em>wrk<\/em>\u00a0y separe el php.ini, para el pr\u00f3ximo. Sino crearemos un <em>fork<\/em> para que se aprecien bien las diferencias. Siempre nos fijamos en\u00a0las <abbr class=\"abbr\" title=\"Respuestas por segundo\">r\/s<\/abbr>, pero hay otro dato muy importante, que a\u00f1adiremos. La <strong>transferencia de datos<\/strong>, en esta comparativa usando <em>wrk<\/em> <strong>los m\u00e1s r\u00e1pidos con ~6 <abbr class=\"abbr\" title=\"Megabytes por segundo\">Mb\/s<\/abbr>\u00a0y los m\u00e1s lentos con ~130 <abbr class=\"abbr\" title=\"Kilobytes por segundo\">Kb\/s<\/abbr><\/strong>. :P<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Los datos hablan por si solos, saquen sus conclusiones. No se f\u00eden de cualquier <em>benchmark<\/em> que vean. <strong>Estas comparativas no son una competici\u00f3n entre frameworks php, son una gran herramienta de ayuda para mejorar todos los <em>frameworks<\/em><\/strong>. Es normal que un <em>framework<\/em> que hace m\u00e1s cosas sea m\u00e1s lento, 2 &#8211; 3 veces m\u00e1s lento pero no 25.<\/p>\n<p>La velocidad de un <em>framework<\/em> es muy importante para muchas aplicaciones. Pero hay m\u00e1s detalles a tener en cuenta, en el momento de elegir uno: la curva de aprendizaje, facilidad de uso, comunidad, entre otros. Tengan en cuenta todos los factores, pero tambi\u00e9n recuerden que despu\u00e9s no podr\u00e1n hacer su <em>framework<\/em> m\u00e1s r\u00e1pido.<\/p>\n<p>Para terminar, espero que no se queden callados y nos dejen conocer sus opiniones y comentarios.<\/p>\n<p>Hasta la pr\u00f3xima.<br \/>\n<em>Correcci\u00f3n de estilo por: Alejandra Morales<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es un benchmark? Seg\u00fan Wikipedia,\u00a0t\u00e9cnica utilizada para medir el rendimiento de un sistema o componente del mismo &#8230;&hellip;<\/p>\n","protected":false},"author":5,"featured_media":1398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[87,1,17],"tags":[23,115,114,116,24,25],"class_list":["post-1395","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-benchmark","category-php","category-php-framework","tag-cakephp","tag-codeigniter","tag-laravel","tag-phalcon","tag-symfony","tag-zend"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017<\/title>\n<meta name=\"description\" content=\"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017\" \/>\n<meta property=\"og:description\" content=\"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/\" \/>\n<meta property=\"og:site_name\" content=\"KumbiaPHP Framework PHP en espa\u00f1ol\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kumbia.fw\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-19T11:51:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-29T22:38:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1050\" \/>\n\t<meta property=\"og:image:height\" content=\"514\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"joanhey\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kumbiaphp\" \/>\n<meta name=\"twitter:site\" content=\"@kumbiaphp\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"joanhey\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/\"},\"author\":{\"name\":\"joanhey\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7de9bfc07351ab831e2a775a26306fc\"},\"headline\":\"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017\",\"datePublished\":\"2017-04-19T11:51:50+00:00\",\"dateModified\":\"2020-04-29T22:38:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/\"},\"wordCount\":1324,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/php-framework-benchmark-2017.png\",\"keywords\":[\"cakephp\",\"codeigniter\",\"laravel\",\"phalcon\",\"symfony\",\"zend\"],\"articleSection\":[\"Benchmarks\",\"PHP\",\"PHP frameworks\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/\",\"name\":\"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/php-framework-benchmark-2017.png\",\"datePublished\":\"2017-04-19T11:51:50+00:00\",\"dateModified\":\"2020-04-29T22:38:57+00:00\",\"description\":\"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#primaryimage\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/php-framework-benchmark-2017.png\",\"contentUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/php-framework-benchmark-2017.png\",\"width\":1050,\"height\":514,\"caption\":\"Gr\u00e1fica del benchmark de frameworks php\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2017\\\/04\\\/19\\\/frameworks-php-benchmark\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"description\":\"Web &amp; app MVC PHP framework\",\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"width\":432,\"height\":50,\"caption\":\"KumbiaPHP Framework PHP en espa\u00f1ol\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/kumbia.fw\",\"https:\\\/\\\/x.com\\\/kumbiaphp\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7de9bfc07351ab831e2a775a26306fc\",\"name\":\"joanhey\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g\",\"caption\":\"joanhey\"},\"description\":\"Muchos a\u00f1os programando en diferentes lenguajes. M\u00e1s analista - arquitecto que programador \u00faltimamente, pero sin dejar de programar c\u00f3digo limpio y r\u00e1pido. Mallorca, Espa\u00f1a\",\"sameAs\":[\"https:\\\/\\\/kumbiaphp.com\"],\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/author\\\/joanhey\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017","description":"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/","og_locale":"es_ES","og_type":"article","og_title":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017","og_description":"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.","og_url":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/","og_site_name":"KumbiaPHP Framework PHP en espa\u00f1ol","article_publisher":"https:\/\/www.facebook.com\/kumbia.fw","article_published_time":"2017-04-19T11:51:50+00:00","article_modified_time":"2020-04-29T22:38:57+00:00","og_image":[{"width":1050,"height":514,"url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","type":"image\/png"}],"author":"joanhey","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","twitter_creator":"@kumbiaphp","twitter_site":"@kumbiaphp","twitter_misc":{"Escrito por":"joanhey","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#article","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/"},"author":{"name":"joanhey","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/e7de9bfc07351ab831e2a775a26306fc"},"headline":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017","datePublished":"2017-04-19T11:51:50+00:00","dateModified":"2020-04-29T22:38:57+00:00","mainEntityOfPage":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/"},"wordCount":1324,"commentCount":0,"publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#primaryimage"},"thumbnailUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","keywords":["cakephp","codeigniter","laravel","phalcon","symfony","zend"],"articleSection":["Benchmarks","PHP","PHP frameworks"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/","url":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/","name":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#primaryimage"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#primaryimage"},"thumbnailUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","datePublished":"2017-04-19T11:51:50+00:00","dateModified":"2020-04-29T22:38:57+00:00","description":"Resultados, c\u00f3digo, comentarios y gr\u00e1fica del benchmark independiente de frameworks php.Realizado por Kenjis el 14 febrero 2017.Descubre cual es m\u00e1s r\u00e1pido.","breadcrumb":{"@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#primaryimage","url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","contentUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","width":1050,"height":514,"caption":"Gr\u00e1fica del benchmark de frameworks php"},{"@type":"BreadcrumbList","@id":"https:\/\/kumbiaphp.com\/blog\/2017\/04\/19\/frameworks-php-benchmark\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/kumbiaphp.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Los frameworks de php m\u00e1s r\u00e1pidos, benchmark 2017"}]},{"@type":"WebSite","@id":"https:\/\/kumbiaphp.com\/blog\/#website","url":"https:\/\/kumbiaphp.com\/blog\/","name":"KumbiaPHP Framework PHP en espa\u00f1ol","description":"Web &amp; app MVC PHP framework","publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kumbiaphp.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kumbiaphp.com\/blog\/#organization","name":"KumbiaPHP Framework PHP en espa\u00f1ol","url":"https:\/\/kumbiaphp.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","contentUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","width":432,"height":50,"caption":"KumbiaPHP Framework PHP en espa\u00f1ol"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kumbia.fw","https:\/\/x.com\/kumbiaphp"]},{"@type":"Person","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/e7de9bfc07351ab831e2a775a26306fc","name":"joanhey","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/317d42c3f322d36d6dea5fafe6ceae9fd32b06d83bd003ed88acc4267b31df31?s=96&d=mm&r=g","caption":"joanhey"},"description":"Muchos a\u00f1os programando en diferentes lenguajes. M\u00e1s analista - arquitecto que programador \u00faltimamente, pero sin dejar de programar c\u00f3digo limpio y r\u00e1pido. Mallorca, Espa\u00f1a","sameAs":["https:\/\/kumbiaphp.com"],"url":"https:\/\/kumbiaphp.com\/blog\/author\/joanhey\/"}]}},"jetpack_featured_media_url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2017\/04\/php-framework-benchmark-2017.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/comments?post=1395"}],"version-history":[{"count":74,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1395\/revisions"}],"predecessor-version":[{"id":2417,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/1395\/revisions\/2417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/media\/1398"}],"wp:attachment":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/media?parent=1395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/categories?post=1395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/tags?post=1395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}