EDIT :: ой я забылСтатический метод быстрее, чем нестатический?
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;
}
}
}
для этого алгоритма
$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";
У меня есть результаты
Difference: 0.007561
и в эти дни, я пытаюсь сделать мои методы статическими, насколько это возможно. Но действительно ли это так. .. atleast for php
Вопрос, который вы должны задать себе: есть ли разница в скорости, вызывающая у вас какие-либо проблемы? Если нет, не беспокойтесь об этом. –
не знаю .. но если статические методы легко вызвать, и я использую его много. У меня было предположение, что статический метод будет медленным, чем обычный, но мои результаты показывают статичность быстрее. просто хотел подтвердить (для знания допустим) –
Завершить это. Сначала заставьте его работать. Из вашего простого теста довольно ясно, что это, вероятно, не значительная разница в величине разницы, поэтому сосредоточьтесь на функциях и волнуйтесь о оптимизации на миллисекундах, если она станет популярной. Тем не менее, к тому времени, когда вы доберетесь до этого уровня, вы, вероятно, заново произвели все это за несколько раз ... – Hamy