Estos tests se han realizado en un VIA Nehemiah 999 MHz con 480 Mb RAM, Windows XP Professional SP2 y PHP 5.2.1. Los scripts necesarios para realizar estas pruebas pueden ser descargados.
1. sizeof vs count
En primer lugar veamos las funciones sizeof y count. Ambas pueden ser utilizadas para contar el número de elementos de un array.
sizeof: 3.75928902626 microsegundos
count: 3.33035206795 microsegundos
Tiempo ahorrado: 0.428936958313 microsegundos; 12.8796280262%
La función "count" es un 12% más rápida y ambas tardan entre 3 y 4 microsegundos en contar los elementos de un array con 100.000 elementos. No sólo es más rápida en la ejecución sino que incluso es más sencilla de recordar y más corta a la hora de escribirla en código.
2. is_int vs is_integer
Vamos a ver cuál de estas funciones valida mejor.
is_int vs is_integer
is_int: 3.11394786835 microsegundos
is_integer: 3.42630600929 microsegundos
Tiempo ahorrado: 0.312358140945 microsegundos; 9.11646946006%
La diferencia es pequeña un 9% y ambas tardan en torno a los 3 microsegundos en validar una variable, de nuevo vuelve a ser la función de nombre más corto la más eficiente.
3. chop vs rtrim
Vamos a ver con que función es más rápido eliminar espacios de una cadena.
chop: 4.73731994629 microsegundos
rtrim: 4.41647195816 microsegundos
Tiempo ahorrado: 0.320847988129 microsegundos; 7.26480301852%
Rtrim es más rápido y ambas de nuevo están en torno a los 4 microsegundos.
4. doubleval vs floatval
Con estas dos funciones obtendremos el valor flotante de una variable.
doubleval: 4.56571412086 microsegundos
floatval: 4.35375285149 microsegundos
Tiempo ahorrado: 0.211961269379 microsegundos; 4.8684727087%
La diferencia es muy pequeña por lo que prácticamente es indiferente decantarse por una de las dos.
5. fwrite vs fputs
Una de las comparaciones en las que vamos a encontrar una diferencia más notable es en esta en la que comparamos funciones de escritura a archivos.
fwrite: 24.9826359749 microsegundos
fputs: 20.1990799904 microsegundos
Tiempo ahorrado: 4.7835559845 microsegundos; 23.6820488199%
La diferencia es de un 23% de tiempo ahorrado si utilizamos fputs claramente más rápida.
6. implode vs join
Con estas dos funciones podemos unir elementos de una matriz y ambas obtienen un rendimiento parecido.
implode: 47.2712550163 microsegundos
join: 50.1287050247 microsegundos
Tiempo ahorrado: 2.85745000839 microsegundos; 5.70022705949%
La verdad que un 5% no nos dice mucho pero lo cierto es que 3 microsegundos no deberían ser ignorados.
7. ini_alter vs ini_set
Para terminar compararemos estas dos funciones para establecer algunas opciones de configuración en este caso "max execution time" a 60 segundos un millón de veces.
ini_alter: 103.332370043 microsegundos
ini_set: 86.2883789539 microsegundos
Tiempo ahorrado: 17.0439910889 microsegundos; 19.7523598143%
Sin duda utilizando ini_set nos ahorraremos un buen puñado de tiempo.
Todas las mediciones de tiempo están hechas con la función microtime que nos devuelve la marca de tiempo en micro-segundos, un microsegundo es la millonésima parte de un segundo, 10-6 segundos.
No hay comentarios:
Publicar un comentario