我正在尝试确定我的 PHP 脚本的 CPU 使用率。我刚刚发现这篇文章详细介绍了如何查找系统和用户 CPU 使用时间(第 4 节)。
但是,当我尝试这些示例时,我得到了完全不同的结果。
第一个例子:
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