我一直在尝试测量我的一个 php 函数在使用结果缓存和不使用结果缓存时所花费的时间。
我遇到了麻烦,因为结果中先运行的那个会提供更多时间,因此结果不是决定性的。
这是我的代码的一部分-
/**
*
* @param InputInterface $input
* @param OutputInterface $output
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
// $this->withoutCache($output);
$this->withCache($output);
$this->withoutCache($output);
}
输出-
RUN 1 -
withoutCache: 0.10952067375183
withCache: 0.077319145202637
RUN 2 -
withCache: 0.17031812667847
withoutCache: 0.042220115661621
我正在使用 symfony 框架,我正在测试使用缓存是否会对每个查询有很大帮助。 Symfony 使用 Doctrine ORM 和 redis 作为结果缓存。
您可能正在初始化一些对象或执行一些与实际过程无关的其他工作,这就是为什么第一个总是需要更多时间的原因。
在进行基准测试之前。
希望这有帮助
第一次运行总是需要初始化与数据库的连接,因此需要更多时间来处理。之后所有后续查询将使用相同的连接。要验证,请创建一个循环,在其中运行多次测试。