gpt4 book ai didi

php - 测量 PHP 中代码段之间耗时

转载 作者:IT王子 更新时间:2023-10-29 00:15:03 24 4
gpt4 key购买 nike

有时,我希望能够测量两段代码之间耗时。这仅仅是为了能够检测代码中的瓶颈并改进可以改进的地方。

我想设计一个这样的函数,该函数应该使用一个全局变量,该变量反射(reflect)当前调用和上次调用之间耗时。

这样一来,你就可以一个接一个的多次使用了。

并且该函数应该能够计算秒的小数部分的差异,例如 0.1 秒或 0.3 秒等。

一个例子可能会更好地解释它。

echo time_elapsed();   

// This echo outputs nothing cause this is the starting case.
// There is nothing to compare against.

//
// 1st code section here
//

echo time_elapsed();

// This echo outputs 0.5 seconds.
// ...which means there has been 0.5 seconds passed
// ...since the last time time_elapsed() was fired

//
// 2nd code section here
//


echo time_elapsed()

// This echo outputs 0.2 seconds

//
// 3rd code section here
//

echo time_elapsed()

// This echo outputs 0.1 seconds etc

我的问题是我需要使用哪些 PHP 实用程序(内置函数)来实现这种输出?

最佳答案

像 XDebug/Zend Debugger 这样的调试器可以为您提供这种类型的洞察力(以及更多),但这里提示您如何编写这样的函数:

function time_elapsed()
{
static $last = null;

$now = microtime(true);

if ($last != null) {
echo '<!-- ' . ($now - $last) . ' -->';
}

$last = $now;
}

主要是函数microtime()是进行时间计算所需的全部内容。为了避免使用全局变量,我在 elapsed 函数中使用了一个静态变量。或者,您可以创建一个简单的类,它可以封装所需的变量并调用类方法来跟踪和输出时间值。

关于php - 测量 PHP 中代码段之间耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com