查看頁面執行php佔用記憶體情況

來源:互聯網
上載者:User

今天頭腦一熱,想看一下頁面在執行的過程中佔用了多少記憶體,我也不知道這樣做的目的是什麼,可能是出於我的慣性思維吧。不過這樣做也不是完全沒用,
你可以清楚的知道哪些頁面佔用的記憶體比較多,特別是對於使用共用主機的網站,一般空間商都會限制每個網站的資源佔用情況的(包括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,從而可以看出那段代碼對記憶體的影響。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.