PHP获取代码段执行的毫秒时间和消耗内存

我们在项目开发经常需要做一些优化型测试,比如优化代码段,排查代码段效率问题,或者降低内存消耗成本。

<?php
$start_memory = memory_get_usage();                 //开始内存
echo '开始内存:' . $start_memory . '<br>'; 

$start_time = microtime(true);                         //获取程序开始执行的时间

//----------------------程序代码段开始-----------------------------------//
$arr = [
    'name' => '风的季节',
    'age'  => '29',
    'sex'  => 1,
    'address' => '山东省德州市庆云县',
    'qq'   => '645631686',
    'phone'=> '15712953567',
];

$all = [];
for($i = 0; $i< 1000; $i++) {
    $str = json_encode($arr);
    $arr = json_decode($str, true);
    $all[] = $arr;
}

unset($all); 
//----------------------程序代码段结束-----------------------------------//

$end_time = microtime(true);                        //获取程序执行结束的时间
$run_time = ($end_time - $start_time) * 1000;       //计算差值 毫秒
echo "[页面执行时间:{$run_time}]毫秒<br>";
$end_memory = memory_get_usage();
echo '运行后内存:'. $end_memory . '<br>';  
  
echo '使用的内存:' . ($end_memory - $start_memory) . '<br>';
echo '回到正常内存:'.memory_get_usage(); 
//结果
开始内存:390224
[页面执行时间:2.8541088104248]毫秒
运行后内存:391256
使用的内存:1032
回到正常内存:391256