Bitácora de Javier Gutiérrez Chamorro (Guti) » Programación
Rendimiento de constantes en PHP
Marzo 19th, 2011 - [Enlace local]
En PHP tengo por costumbre el usar variables globales como constantes, pero no ha sido hasta hace bien poco que me he cuestionado su eficiencia, teniendo en cuenta que existe define. Pensando de manera análoga a C, suponía que define iba a ser mucho más eficiente, al ser una constante definida en tiempo de interpretación. Nada más sencillo que comprobarlo con el siguiente código: <?php $KI_MAX_ITER = 1000; define('KI_MAX_ITER', 1000); $fInicio=microtime(true); for ($iCont1=0; $iCont1<$KI_MAX_ITER; $iCont1++) { for ($iCont2=0; $iCont2<$KI_MAX_ITER; $iCont2++) { $iCont3=($KI_MAX_ITER != $KI_MAX_ITER); $iCont3=$KI_MAX_ITER; $iCont3=($KI_MAX_ITER == $KI_MAX_ITER); } } $fFin=microtime(true); echo ($fFin - $fInicio) . '<br>'; $fInicio=microtime(true); for ($iCont1=0; $iCont1<KI_MAX_ITER; $iCont1++) { for ($iCont2=0; $iCont2<KI_MAX_ITER; $iCont2++) { $iCont3=(KI_MAX_ITER != KI_MAX_ITER); $iCont3=KI_MAX_ITER; $iCont3=(KI_MAX_ITER == KI_MAX_ITER); } } $fFin=microtime(true); echo ($fFin - $fInicio) . '<br>'; ?> El resultado es que usar una varíable de ámbito global ha llevado 0.41 segundos, mientras que hacerlo con define 0.89. En conclusión, a la hora de usar constantes, evita define siempre que sea posible, usando en su defecto variables globales. Artículos relacionados:Flash 9 Alpha y rendimiento Rendimiento Javascript vs VBScript Rendimiento de Google Chrome
Artículos relacionados:
Flash 9 Alpha y rendimiento
Rendimiento Javascript vs VBScript
Rendimiento de Google Chrome