Лучшая производительность: считать в цикле или снаружи?

Возможно, этот вопрос задавался несколько раз, но я не могу найти правильный ответ здесь или в Google, поэтому извиняюсь, если это обман или что-то в этом роде, но вот...

Как лучше всего добиться производительности в цикле:

  1. count($var) каждый раз

    for ($i=0;$i<count($var);$i++) {
        // do something
    }
    
  2. поместите переменную снаружи и используйте эту переменную:

    $cnt = count($var);
    for ($i=0;$i<$var;$i++) {
        // do something
    }
    

Есть ли какой-нибудь PHP-скрипт или код для отображения времени выполнения и т. д.? Я имею в виду что-то для бенчмарка и увидеть результаты в этом случае?


person ReynierPM    schedule 24.02.2016    source источник
comment
Почему бы вам не запустить несколько тестов и посмотреть?   -  person j08691    schedule 24.02.2016
comment
@ j08691 j08691 это потому, что я не знаю, как правильно сравнить его, чтобы увидеть время выполнения, память и т. Д., И поэтому я спросил об этом и спасибо за отрицательный голос (человеку, который это сделал);)   -  person ReynierPM    schedule 24.02.2016
comment
Спасибо, что предположили, что я проголосовал за вас, но я этого не сделал.   -  person j08691    schedule 24.02.2016
comment
см. здесь: phpbench.com — используйте count() вне for   -  person Sebastian Brosch    schedule 24.02.2016


Ответы (1)


Я почти уверен, что вы имели в виду

for ($i=0;$i<$cnt;$i++) {

во втором фрагменте

да... более эффективно считать только один раз.

можно и так сделать

for ($i=0, $cnt=count($var); $i<$cnt; $i++) {
person Brad Kent    schedule 24.02.2016