1

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

设置:

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

结果:

  • 黑火:321ms
  • Chrome的网络时间(TTFB):34.80ms
  • WordPress - 查询监视器插件:0.03 秒(或 30 毫秒)
  • WordPress - 圈数插件:0.029 秒(或 29 毫秒)
  • CLIcurl -s -o /dev/null \-w "%{time_total}\n" -k https://wp.test循环 10 次:平均 0.044 秒(或 44 毫秒,单个运行增量为 2-3 毫秒)

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

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

更新:

  1. 测试了一些其他的 php 东西——一个只有 phpinfo 的基本文件、memcached 和 opcache 管理脚本——它们都非常快,而且 Blackfire 报告的时间与其他方法相同。
  2. 在 Vagrant VM(Laravel 的 Homestead)上测试,所有 WordPress 网站都很快,Blackfire 也报告了与其他方法相同的时间。

考虑到上述情况,带有本地 EMP 堆栈的 Blackfire + WordPress + macOS High Sierra 肯定有问题。

4

1 回答 1

1

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

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

潮汐也有一篇关于 PHP 7、分析和开销的博客文章https://tideways.io/profiler/blog/profiling-overhead-and-php-7

于 2018-04-03T11:49:26.717 回答