php中通过microtime()函数和memory_get_usage()函数应用可以计算业务逻辑程序运行时间和系统分配的内存大小。
当在调试代码和代码优化时通过计算程序运行时间以及内存开销是很有必要的,通过microtime()函数可以获得时间戳的微秒数,通过memory_get_usage()函数可以获得系统分配的内存大小。
函数讲解
microtime(get_as_float)函数返回当前 Unix 时间戳的微秒数,get_as_float可选,当设置为 TRUE 时,规定函数返回浮点数,FALSE 则返回字符串,默认为 FALSE。
示例:
echo microtime() // 0.99154900 1595469500
echo microtime(true) // 1595469500.9915
memory_get_usage(real_usage)函数返回分配给 PHP 的内存量,单位是字节(byte)。real_usage如果设置为 TRUE 获取系统分配总的内存尺寸,包括未使用的页。如果设置为 FALSE 报告实际使用的内存量,默认为 FALSE。
示例:
echo memory_get_usage(); // 362280
echo memory_get_usage(true); // 2097152
函数应用
/**
* 程序运行计算
*/
function runExpend($param=array()){
if(!$param){
return array('startTime'=>microtime(true),'startRam'=>memory_get_usage());
}
return array(
'times'=>round((microtime(true) - $param['startTime']), 3).'s',
'ram'=>round((memory_get_usage() - $param['startRam']) / 1024, 2).'kb'
);
}
// 第一次调用自动设置初始值
$runParam = runExpend();
// 业务程序代码块 - start
for($i=0;$i<100000000;$i++){
$i;
}
// 业务程序代码块 - end
// 第二次调用并给予第一次的返回值
$runVar = runExpend($runParam);
// 打印结果
print_r($runVar);
打印内容示例:
Array
(
[times] => 1.659s
[ram] => 0.29kb
)