PHP計算出記憶體最高佔用.

thinkyoung發表於2015-09-08
程式碼可以計算出記憶體是否完全被使用, ini設定處:memory_limit = 1024M  
程式碼跑完將顯示如下資訊:  

memory_limit:320M  
all run count: 55924054  
$data string size:266.67MB  
run memory: 266.67MB  

可同時開啟工作管理員檢視記憶體佔用, 可明顯看出記憶體上漲過程.  
執行時間有點長, 請慢慢等待執行完成.  
測試環境, win8 apache2.4.3 PHP5.4.12

<?php  
set_time_limit(0); 
echo `memory_limit:`. $memory = ini_get(`memory_limit`).``; 
$string = str_repeat(`abcde`,50000);  // 執行字串, 可修改這兒. 
$memory =($memory+0)*1024*1024; 
$runtime = memory_get_usage(); 
$runcount = abs(($memory / strlen($string)) * 0.99); // 為什麼+1? 因為需要留點記憶體給其它變數或者計算式. 
$i = 0; 

while($i < $runcount){ 
    $i ++; 
    $data .= $string; 

echo `all run count: `.$i.``; 
echo `$data string size:`. sprintf(`%01.2f`,strlen($data) / 1024 / 1024) .`MB `; 
echo `run memory: `. sprintf(`%01.2f`,(memory_get_usage() - $runtime) / 1024 / 1024) .`MB`; 

echo `memory_get_peak_usage: `.sprintf(`%01.2f`,(memory_get_peak_usage() - $runtime) / 1024 / 1024) .`MB<br>`; 
exit();

 


相關文章