为什么Blackfire Profiler会报告10倍的时间?

时间:2018-03-22 12:34:20

标签: php profiling blackfire

在测试本地网站时,我注意到Blackfire报告的时间与其他来源相比差异大约10倍。

设置:

  • macOS High Sierra,通过Homebrew在本地安装所有堆栈(类似于Laravel的代客)
  • Nginx 1.13.9
  • PHP 7.2.3,带opcache
  • Xdebug 2.6.0(在分析期间禁用)
  • Blackfire agent 1.16.0
  • Blackfire probe 1.18.2
  • 使用默认主题和设置的最新WordPress,使用自定义Composer驱动的骨架创建,其中WP是依赖项本身
  • Composer的自动加载器已经过优化
  • HTTPS(自签名,使用自定义本地CA签名)
  • HTTP / 2

结果:

  • Blackfire: 321ms
  • Chrome的网络时间(TTFB):34.80ms
  • WordPress - 查询监视器插件:0.03s(或30ms)
  • WordPress - Laps插件:0.029s(或29ms)
  • CLI curl -s -o /dev/null \-w "%{time_total}\n" -k https://wp.test循环10次:AVG 0.044s(或44ms,个别运行delta为2-3ms)

多次测试。除Blackfire之外的所有来源都非常一致,报告时间 30-50ms 。感知加载时间是“即时”,就像真正的30-50ms一样。 350毫秒的加载时间会很明显,这就是为什么我确实相信Blackfire就在这里。

我做错了什么?之前没有注意到这一点。

更新

  1. 测试了一些其他的php东西 - 只有phpinfo的基本文件,memcached和opcache管理脚本 - 所有这些都超级快,Blackfire报告的时间与其他方法相同。
  2. 在Vagrant VM(Laravel's Homestead)上测试,所有WordPress网站都很快,Blackfire也报告与其他方法相同的时间。
  3. 考虑到上述情况,使用本地EMP堆栈的Blackfire + WordPress + macOS High Sierra肯定存在问题。

1 个答案:

答案 0 :(得分:1)

分析代码 - 以任何语言 - 增加了一些开销。这取决于引擎,代码和一些其他变量,如运行配置文件代码的计算机。在您的情况下,开销使页面运行速度慢10倍。增加的缓慢是等距的,这意味着您可以使用结果推理和改进代码。

这是指向与开销https://blackfire.io/docs/reference-guide/analyzing-call-graphs#understanding-blackfire-overhead相关的Blackfire文档的指针

此外还有一篇关于PHP 7潮流的博文,分析和开销https://tideways.io/profiler/blog/profiling-overhead-and-php-7