Вы можете использовать системную команду 'time' для внешней проверки этой информации:
/usr/bin/time php script.php
, который напечатает что-то вроде:
0.03user 0.00system 0:03.04elapsed 0%CPU (0avgtext+0avgdata 32752maxresident)k
0inputs+0outputs (0major+2234minor)pagefaults 0swaps
Конечно, не забывайте, что информация getrusage () - это используемое время процессора, а microtime () - время настенных часов. Программа может работать в течение 10 минут в соответствии с настенными часами, но внутренне может использовать только несколько секунд процессорного времени. Затем идет борьба за процессорное время со всеми фоновыми программами, работающими в системе, конкуренция за ресурсы, а также регулярное ведение домашнего хозяйства.
Слишком много факторов задействовано, чтобы иметь возможность получить точное время для таких коротких периодов. Сделав три прогона while(microtime())
версии вашего цикла, я получил следующие тайминги:
пользователь: 0,98, 0,09, 0,90
sys: 0,12, 0,05, 0,94
Очевидно, довольно большая разница. Даже простой <? print_r(getrusage()) ?>
имеет время / интервал от 0 до 0,03.
Попробуйте запустить свои циклы в течение более длительных периодов времени, и сделайте что-нибудь в них, чтобы увеличить использование процессора. Сейчас ваши цифры слишком малы, чтобы их можно было точно измерить.