代码可以计算出内存是否完全被使用, 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();​