首頁  >  文章  >  後端開發  >  php如何查看記憶體和CPU使用詳解

php如何查看記憶體和CPU使用詳解

伊谢尔伦
伊谢尔伦原創
2017-06-29 13:13:234967瀏覽

1. 查看記憶體使用情況

觀察你程式的記憶體使用能夠讓你更好的最佳化你的程式碼。
PHP 是有垃圾回收機制的,而且有一套很複雜的記憶體管理機制。你可以知道你的腳本所使用的記憶體情況。要知道目前記憶體使用情況,你可以使用?memory_get_usage() 函數,如果你想知道使用記憶體的峰值,你可以呼叫memory_get_peak_usage() 函數。

echo "Initial: ".memory_get_usage()." bytes \n";
/* 输出
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 \n";
/* prints
Final: 885912 bytes
*/
echo "Peak: ".memory_get_peak_usage()." bytes \n";
/* 输出峰值
Peak: 13687072 bytes
*/

2. 查看CPU使用量 
使用?getrusage() 函數可以讓你知道CPU的使用情況。注意,這個功能在Windows下不可用。

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_utime.tv_sec: 使用者狀態時間(seconds)
ru_stime.tv_utime.tv_Uusec : 系統核心時間(microseconds)
ru_stime.tv_sec: 系統核心時間?(seconds)

####

以上是php如何查看記憶體和CPU使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn