使用Result缓存并且没有结果缓存来定时我的php函数

时间:2016-06-22 03:31:28

标签: php symfony redis doctrine profiling

我一直在尝试测量一个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作为结果缓存。

1 个答案:

答案 0 :(得分:0)

您可能正在初始化某些对象或执行与实际过程无关的其他工作,这就是为什么第一个总是需要更多时间的原因。

在进行基准测试之前。

  1. 确保创建了所有对象,并且只测量实际过程所需的时间。
  2. 还可以尝试在多线程环境中运行它们以获得最佳数字。
  3. 希望这有帮助