<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 本文无关的程序部分</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"欢迎阅读 PHP 技术文章。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1></span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>() 返回的数据单位解析</h1>
<p>在 PHP 中,<code></span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>()
这段代码将输出类似如下的内容(不同系统可能略有差异):
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[ru_utime.tv_sec] => </span><span><span class="hljs-number">0</span></span><span>
[ru_utime.tv_usec] => </span><span><span class="hljs-number">123456</span></span><span>
[ru_stime.tv_sec] => </span><span><span class="hljs-number">0</span></span><span>
[ru_stime.tv_usec] => </span><span><span class="hljs-number">7890</span></span><span>
[ru_maxrss] => </span><span><span class="hljs-number">34560</span></span><span>
...
)
假设我们想获取总的用户态 CPU 时间,可以这样写:
</span><span><span class="hljs-variable">$usage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>();
</span><span><span class="hljs-variable">$user_time</span></span><span> = </span><span><span class="hljs-variable">$usage</span></span><span>[</span><span><span class="hljs-string">"ru_utime.tv_sec"</span></span><span>] + </span><span><span class="hljs-variable">$usage</span></span><span>[</span><span><span class="hljs-string">"ru_utime.tv_usec"</span></span><span>] / </span><span><span class="hljs-number">1e6</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"用户态耗时: <span class="hljs-subst">{$user_time}</span></span></span><span> 秒\n";
类似地,可对内核态时间执行相同操作,从而获得进程 CPU 使用总时间。
getrusage() 是 PHP 提供的一个深入了解脚本资源消耗情况的重要工具。理解其返回值的含义和单位,有助于开发者进行更细致的性能调优与监控。