2008-12-13

Test de algunas funciones Php

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 vs count

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 vs rtrim

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 vs floatval

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 vs fputs

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 vs join

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 vs ini_set

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: