Contenido

Benchmarks de PHP ¿Que usar en cada momento?

5 Jun

+ 5

Hoy Luis Sacristan de Sentido Web ha publicado un artículo muy interesante sobre el rendimiento de PHP en algunos casos concretos. Usando los resultados de The PHP Benchmark, Luis saca unas conclusiones que deberemos tener siempre en cuenta.

  • Realizar un foreach es siempre más rápido, y si no recuperamos la clave del array mejor aún.
  • Un for es más rápido si no calculamos previamente en una variable el tamaño del array que recorremos, y que sizeof es más rapido que count.
  • Cuando vamos a asignar el valor de una posición de un array a una variable para tratar con ella, es conveniente hacerlo por referencia ($alias = &$aSingleDimArray[$i]).
  • No es más rápido crear un objeto como referencia ($obj =& new SomeClass();).
  • if es más rápido que switch/case, y ligeramente más rápido es usar == que ===.
  • Parece ser que el uso de comilla simple o doble en las últimas versiones se ha mejorado y no existe apenas diferencia.

Lamento no estar de acuerdo en muchas cosas. Estoy más de acuerdo en un benchmark como http://torrentialwebdev.com/blog/archives/116-7-tips-for-lightning-fast-PHP-sites.html
De hecho son cosas que fui haciendo yo mis propios bench.
Me gustaría si pueden analizar sobre extensiones Mysql vs Mysqli estuve haciendo un bench pero varía mucho dependiendo lo que se haga.
Saludos.-

Hay un error que seguramente se le pasó a Sacristán: en el sitio original dice que === es más rápido que ==, no al revés. == primero revisa que las variables comparadas sean del mismo tipo, por lo que demora un poco (ligeramente, como dice en el sitio) más

Hola, en relidad, no solo depende del php como motor, tambien depende como este compilado caches, tipo de nucleo de procesos, tambien abria que ver el orden logico matematico que requiere de ciclos cada funcion de las que utilizamos mientras mas pasos para iniciar algo o comprobar mas recursos. un saludo

La segunda conclusión es incorrecta, debería ser:

Un for es más rápido si calculamos previamente en una variable el tamaño del array que recorremos

(sobra el ‘no’).

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.


Cerrar
Enviar por Correo