今天頭腦一熱,想看一下頁面在執行的過程中佔用了多少記憶體,我也不知道這樣做的目的是什麼,可能是出於我的慣性思維吧。不過這樣做也不是完全沒用,
你可以清楚的知道哪些頁面佔用的記憶體比較多,特別是對於使用共用主機的網站,一般空間商都會限制每個網站的資源佔用情況的(包括cpu和記憶體)。萬一在我
們不知道的情況下,經常佔用太多的記憶體,你願意,空間商可不同意了。當然這種情況是很少出現的。
memory_get_usage
php提供了一個查看分配的記憶體大小的函數memory_get_usage,原型如下
int memory_get_usage ([ bool $real_usage = false ] )
$real_usage為選擇性參數,預設為false(即不包括memory_get_usage本身佔用的記憶體),memory_get_usage(true)可查看包括memory_get_usage在內的記憶體佔用情況。
該函數預設返回的是佔用記憶體的位元組數,我們可以通過除以1024來以KB為單位,再除以1024以MB為單位。
使用方法
對於wordpress,我們只需要在主題檔案夾下的footer.php檔案調用memory_get_usage函數即可
<?php printf(‘ memory usage: %01.2f MB’, memory_get_usage()/1024/1024); ?>
該語句的輸出以MB為單位,小數點後保留2位。具體效果可以參看本站的底部。
題外話
當然,如果你想做一個詳細的測試,可以在頁面代碼執行之前、模板調用之前以及頁面代碼執行完畢之後分別調用該函數以做對比,以下是我做的測試:
一、在頁面代碼執行之前調用memory_get_usage,即在根目錄下的index.php檔案的最開始部分加入上面的代碼,結果在0.3M左右。
二、在模板調用之前,即在主題檔案夾下的header.php檔案的最開始部分調用memory_get_usage,結果在11M左右。說明wordpress在調用模板之前已經載入了大量的資料。
三、在頁面代碼執行完畢之後,即在主題檔案夾下的footer.php檔案的最後部分調用memory_get_usage,結果因頁面的不同而不
同,不過也都差不多在12M以下。說明主題本身的php調用沒有佔用多少記憶體。如果這個結果很高的話,就要檢查一下你的主題檔案了。
以上結果因為主機的不同而不同,因wordpress的不同而不同,因主題的不同而不同,因各種因素的不同而不同……僅做參考。
另外,如果你想測試某段代碼執行後的記憶體使用量情況,可以在代碼執行之前和執行之後分別調用memory_get_usage,從而可以看出那段代碼對記憶體的影響。