php如何查看内存和CPU使用详解

php如何查看内存和CPU使用详解

1. 查看内存使用情况

观察程序的内存使用能够更好的优化代码。

PHP 是有垃圾回收机制的,而且有一套很复杂的内存管理机制。你可以知道你的脚本所使用的内存情况。

要知道当前内存使用情况,你可以使用memory_get_usage() 函数,如果你想知道使用内存的峰值,你可以调用memory_get_peak_usage() 函数。

echo "Initial: ".memory_get_usage()." bytes ";
// 输出
Initial: 361400 bytes
// 使用内存
for ($i = 0; $i < 100000; $i++) {
    $array []= md5($i);
}
// 删除一半的内存
for ($i = 0; $i < 100000; $i++) {
    unset($array[$i]);
}
echo "Final: ".memory_get_usage()." bytes ";
// prints
Final: 885912 bytes
echo "Peak: ".memory_get_peak_usage()." bytes ";
// 输出峰值
Peak: 13687072 bytes

2. 查看CPU使用情况 

使用getrusage() 函数可以让获取CPU的使用情况。

注意:这个函数在Win环境下不可用。

print_r(getrusage());
// 输出
Array
(
    [ru_oublock] => 0
    [ru_inblock] => 0
    [ru_msgsnd] => 2
    [ru_msgrcv] => 3
    [ru_maxrss] => 12692
    [ru_ixrss] => 764
    [ru_idrss] => 3864
    [ru_minflt] => 94
    [ru_majflt] => 0
    [ru_nsignals] => 1
    [ru_nvcsw] => 67
    [ru_nivcsw] => 4
    [ru_nswap] => 0
    [ru_utime.tv_usec] => 0
    [ru_utime.tv_sec] => 0
    [ru_stime.tv_usec] => 6269
    [ru_stime.tv_sec] => 0
)

这个结构看上出很晦涩,除非你对CPU很了解。下面一些解释:


ru_oublock: 块输出操作

ru_inblock: 块输入操作

ru_msgsnd: 发送的message

ru_msgrcv: 收到的message

ru_maxrss: 最大驻留集大小

ru_ixrss: 全部共享内存大小

ru_idrss:全部非共享内存大小

ru_minflt: 页回收

ru_majflt: 页失效

ru_nsignals: 收到的信号

ru_nvcsw: 主动上下文切换

ru_nivcsw: 被动上下文切换

ru_nswap: 交换区

ru_utime.tv_usec: 用户态时间 (microseconds)

ru_utime.tv_sec: 用户态时间(seconds)

ru_stime.tv_usec: 系统内核时间 (microseconds)

ru_stime.tv_sec: 系统内核时间(seconds)

以上就是php如何查看内存和CPU使用详解的详细内容。


THE END

文章版权:作者:刘小白  来源:htmlbk  

免责声明:本站提供的一切软件、插件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

本文最后更新于 2022-11-30 14:57:35,如果你的问题还没有解决,可以加入建站交流群和群友们一起讨论。

评论区