Viendo los resultados de Pruebas de Rendimiento en Laravel 5.5 5.6 5.7 5.8 vs PHP 7.1 7.2 7.3 y recordando algunos posts sobre optimizaciones, he realizado una prueba “inocua” para el framework como es añadir una contrabarra a las funciones nativas de PHP para forzar su resolución en el namespace raíz en vez de primer buscarlas en el namespace actual.
Esto es sencillo de hacer mediante php-cs-fixer y la regla native_function_invocation.
php-cs-fixer fix --rules=native_function_invocation --allow-risky=yes vendor/laravel/framework/src/Illuminate/
Los resultados de este cambio son perfectamente visibles en los tests, obteniendo una ganancia de entre 2 y 8 peticiones más por segundo de media en cada ejecución.
Dispones del script de test en https://gist.github.com/eusonlito/b8ca1e80220f3791b3ae8bfa1d3c8d76
Los datos completos puedes consultarlos en https://docs.google.com/spreadsheets/d/1Mlgd-ds2pSQm-4QcJbGbronnOxFhSwekoSz0Ueti-50/edit#gid=543022577
Como puedes ver, es muy sencillo “rascar” peticiones por segundo en un framework, y esta es una manera muy sencilla de hacerlo.
Lo complicado siempre está en buscar optimizaciones que hagan que los números salten a la vista, y eso será imposible si no vamos pasito a pasito.
Si quieres grandes resultados, trabaja a pequeña escala.