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

非特殊说明,本站所有文章均为博主原创

如若转载,请注明出处:https://www.htmlbk.com/php/604.html

温馨提示:该文档最后一次修改时间为2022-07-19 12:02:05,请注意相关的内容是否还可用!