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中文網其他相關文章!