EDITAR :: Ah se me olvidó¿El método estático es más rápido que el no estático?
class Test1{
public static function test(){
for($i=0; $i<=1000; $i++)
$j += $i;
}
}
class Test2{
public function test() {
for ($i=0; $i<=1000; $i++){
$j += $i;
}
}
}
para este algoritmo
$time_start = microtime();
$test1 = new Test2();
for($i=0; $i<=100;$i++)
$test1->test();
$time_end = microtime();
$time1 = $time_end - $time_start;
$time_start = microtime();
for($i=0; $i<=100;$i++)
Test1::test();
$time_end = microtime();
$time2 = $time_end - $time_start;
$time = $time1 - $time2;
echo "Difference: $time";
tengo resultados
Difference: 0.007561
y en estos días, estoy tratando de hacer mis métodos estáticos como sea posible. Pero, ¿es realmente cierto? Al menos para php
La pregunta que debe hacerse: ¿La diferencia de velocidad le causa algún problema? Si no, no te preocupes por eso. –
no sé ... pero si los métodos estáticos son fáciles de llamar y lo uso mucho. Tuve la pre-suposición de que el método estático sería más lento que el habitual, pero mis resultados muestran que la estática es más rápida. solo quería confirmar (para conocimiento, digamos) –
Completo ídem. Primero haz que funcione. De tu simple prueba queda bastante claro que probablemente no se trate de una diferencia de orden de magnitud significativa, así que concéntrate en las características y preocúpate por las optimizaciones de milisegundos si se vuelve popular. Sin embargo, para cuando llegue a ese nivel, probablemente haya vuelto a factorizarlo varias veces ... – Hamy