JO JO JO......Ud es un TRAMPOSO!!!! si Ud invierte el orden de las llamadas a las funciones la suya pierde lejos!!!!!!!!!!
Para 500:
Código resutlados pruebas:
Ver originalItalico: 24.439208984375
Alexis: 51.1572265625
y lo unico que hice fue cambiar el orden de las llamadas:
Código PHP:
Ver original<?php
function italico(&$array)
{
{
case 0: return null;
case 1: return $array[0];
default:
return implode (' ,',$array).' y '.$ult; }
}
function alexis($array) {
}
for ($i = 0; $i < 1000; $i++)
alexis($array);
$tiempoAlexis = $fin2 - $ini2;
for ($i = 0; $i < 1000; $i++)
italico($array);
$tiempoItalico = $fin1 - $ini1;
echo "Italico: " . $tiempoItalico."\n";
echo "Alexis: " . $tiempoAlexis;
El ultimo corre mas rapido ya que esos datos ya se procesaron y ni siquiera creando copias de los datos si son iguales el efecto "memoria" desaparece:
Código PHP:
Ver original<?php
function italico1(&$arr)
{
if ($cant==0) return null;
$salida = null;
if ($cant>1)
{
for ($i=0;$i<$cant-2;$i++)
$salida .= $arr[$i].' ,';
return $salida.$arr[$cant-2].' y '.$arr[$cant-1];
}else
return $arr[0];
}
function italico2(&$arr)
{
{
case 0: return null;
case 1: return $arr[0];
default:
return implode (' ,',$arr).' y '.$ult; }
}
function alexis($array) {
}
for ($i = 0; $i < 1000; $i++)
alexis($a[1]);
$tiempoAlexis = $fin2 - $ini2;
for ($i = 0; $i < 1000; $i++)
italico1($a[0]);
$tiempoItalico1 = $fin1 - $ini1;
for ($i = 0; $i < 1000; $i++)
italico2($a[2]);
$tiempoItalico2 = $fin1 - $ini1;
echo "Italico (script #1): " . $tiempoItalico1."\n";
echo "Italico (script #2): " . $tiempoItalico2."\n";
echo "Alexis: " . $tiempoAlexis;
Puede probar...y si sigue cambiando de lugar las llamadas..... con los mismos datos, mismo "problema"