thinkpad e520 php520記憶體管理改進

WBOY
發布: 2016-07-29 08:36:09
原創
1478 人瀏覽過

php5.2.0的記憶體管理做了較大的改進,某些情況下記憶體不能釋放的問題就不存在了。
測試php腳本(mem.php),我用echo N>>和sleep來控制腳本在某個階段暫停以便檢測狀態。

複製程式碼 程式碼如下:


echo '1>>'; 5); 
$o = array(); 
for ($i=0;$i    $o[]='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 🎜>echo '2>>'; 
sleep(5); 
unset($o); 
echo '3>>'; 
while (true) { '3>>'; 
while (true) {  <. .>    sleep(10); 

?> 

監控記憶體使用情況的bash script(注意:裡面的」mem」是取自上面的php腳本名稱) :
while true;do clear;ps au|grep -v "(vi|grep)"|grep "(mem|RSS)";sleep 2;done;
以下是$/usr/local/bin /php mem.php這個進程在三種狀態(數組創建前,數組創建後,數組銷毀後)下,用5.1.6和5.2.0的PHP(我使用了一樣的configure參數)測試的RSS(內存使用值,單位KB)結果。

php5.1.6:
3164
18076
17572
PHP5.2.0:
4088
14400 大家可能還注意到,在最開始,5.2.0的記憶體使用量比5.1.6多了幾個kb,這是由於5.2.0增加了一些新的東西,這個是很正常的。
另外php5.2.0的記憶體分配也進行了重大的改進,官方的說法是對memory_limit的檢測由每次呼叫emalloc()的時候進行改為直接檢測從系統請求的內存資料塊(blocks)。需要更進一步了解的朋友可以自己去研究程式碼。而由於記憶體分配的實現的更改,記憶體控制可以更精確地被控制在memory_limit之下,也就是說以前php程式碼裡,如果有超過了memory_limit的記憶體使用而沒有出錯的,在php5.2.0裡可能會報錯誤。為了平衡這次改進,PHP5.2.0的預設的memory_limit由以前的8MB改為16MB.搜尋原始碼可以看到這個修改(find . -name *c -type f |xargs cat |grep memory_limit)。 

以上就介紹了thinkpad e520 php520記憶體管理改進,包括了thinkpad e520方面的內容,希望對PHP教程有興趣的朋友有所幫助。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!