Я пытаюсь определить использование процессора для моих PHP-скриптов. Я только что нашел this article, в котором подробно описано, как найти время использования процессора и пользователя (раздел 4).PHP getrusage() возвращает неверную информацию?
Однако, когда я опробовал примеры, я получил совершенно разные результаты.
Первый пример:
sleep(3);
$data = getrusage();
echo "User time: ".
($data['ru_utime.tv_sec'] +
$data['ru_utime.tv_usec']/1000000);
echo "System time: ".
($data['ru_stime.tv_sec'] +
$data['ru_stime.tv_usec']/1000000);
Результаты в:
User time: 29.53
System time: 2.71
Пример 2:
for($i=0;$i<10000000;$i++) {
}
// Same echo statements
Результаты:
User time: 16.69
System time: 2.1
Пример 3:
$start = microtime(true);
while(microtime(true) - $start < 3) {
}
// Same echo statements
Результаты:
User time: 34.94
System time: 3.14
Очевидно, что ни одна из информации не является правильным исключением, может быть системным временем в третьем примере. Так что я делаю неправильно? Я бы очень хотел, чтобы иметь возможность использовать эту информацию, но она должна быть надежной.
Я использую Ubuntu Server 8.04 LTS (32-бит), и это является выходом php -v
:
PHP 5.2.4-2ubuntu5.10 with Suhosin-Patch 0.9.6.2 (cli) (built: Jan 6 2010 22:01:14)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Я также получаю много странного поведения здесь. Возможно, из-за интерфейса SAPI – Pacerier