且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP 计算出内存最高占用.

更新时间:2022-05-02 08:10:24

PHP 计算出内存最高占用.

 

 

 

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