问题标签 [blackfire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2705 浏览

php - 暂时禁用 blackfire 模块

我已经成功安装了 blackfire 代理、cli 工具和探针,它工作正常。我在使用 bf 进行分析时禁用了 xdebug 模块。

现在我想像以前一样使用 xdebug,但是 xdebug 不起作用,它只是不会进入调试会话。没有断点,甚至没有xdebug_break工作。生产者网站上的一句话说:

已知的不兼容性

请注意,不支持使用 debug 编译的 PHP,并且 Probe 可能与 XDebug 或 XHProf 冲突;启用探测器时禁用这些扩展。

有没有办法在不卸载整个 blackfire 工具链的情况下禁用 blackfire代理?将文件移动/etc/php5/conf.d/90-blackfire.ini到备份位置不起作用。

更新 有效的是卸载 php 代理sudo apt-get remove blackfire-php。但我很确定一定有更好的解决方案。

0 投票
1 回答
29 浏览

blackfire - 如何在 Blackfire 报告中复制类和函数名称

当我从 Blackfire 配置文件中复制粘贴方法名称时,我得到一个反向字符串,如下所示: sgnitsiLredivorPdaol::yrotisopeRresopmoC\yrotisopeR\resopmoC

复制正确方法名称的预期方法是什么(不反转)?为什么 Blackfire 会有这样的行为?这是某种愚蠢的玩笑还是复制粘贴保护?

带有 DOM 检查器的 Blackfire 个人资料页面

0 投票
1 回答
227 浏览

php - 使用 blackfire.io 分析 PHP 7 应用程序,为什么我看到相同代码的不同 cpu 时间?

我支持和返工遗留的 PHP7 应用程序。此应用程序不使用自动加载,而不是此应用程序需要单个文件中的所有类,只需使用类遍历所有目录。老团队认为这是一种很好的优化方式。

所以我用blackfire做了一些测试,发现这个包括可以消耗一半的cpu时间。我做了自动加载实验,将cpu时间减少了两倍,内存消耗减少了三倍。伟大的结果。

然后我继续在没有自动加载的情况下使用旧代码进行实验,发现在某些情况下巨型包含​​不会消耗很多时间(而且它是带有很多循环的平面文件,没有 if-else 语句)。

在 blackfire 面板中,这看起来像包含包含的文件具有非常显着的被调用者数量。在一种情况下,该文件有 21 个被调用者,工作 132 毫秒,在另一种情况下,它有 6 个被调用者和 2.63 毫秒。

我不明白这种差异的原因。我的假设是 PHP7 非常聪明,可以分析哪些类真正应该用字节码编译,哪些不应该。

有人知道为什么存在这种差异吗?

PS:我不能显示黑火报告,PM 不允许这样做。

0 投票
1 回答
1153 浏览

wamp - Blackfire 无法在 Windows / WAMP 上运行

Blackfire 给了我“您是否有权分析此页面?未找到探针或签名无效。” 在我的 WAMP 安装中!

我正确地遵循了所有步骤,并将所有东西都安装在了正确的位置。

0 投票
1 回答
2469 浏览

php - 改进 Symfony 中的 Composer\Autoload\includeFile

我对我的 Symfony 2.8 项目进行了 Blackfire 测试,它表明大部分时间(超过 50%)被 Composer\Autoload\includeFile 的 435 次调用使用

有什么建议可以改进吗?我php composer.phar dump-autoload --optimize在清除产品缓存后使用。

我将 APC 用于元数据,并为学说使用查询缓存,我的 app.php 文件如下所示:

0 投票
2 回答
3846 浏览

php - 在 Docker 环境中使用 Blackfire 容器分析我的应用程序

今天我正在尝试将 Blackfire 添加到我的 Docker 堆栈中!我遵循了专门用于 Docker 实现的 Blackfire 文档,容器设置正确,但我无法成功创建我的应用程序的第一个配置文件。

这是一个 Symfony 堆栈。我有一个 PHP-FPM 容器和一个用于启动命令的 CLI 容器。NGINX 容器是网络服务器。

我的docker-compose.yml文件如下:

我的环境变量使用我的 Blackfire ID 正确设置。

我尝试使用以下命令行制作我的个人资料:

结果是:

在 PHP-FPM 和 CLI Dockerfiles 中,我都放置了文档说明

编辑:触发配置文件命令后,我的 PHP-FPM 容器和 NGINX 应用程序日志中有以下日志:

PHP-FPM

NGINX

0 投票
1 回答
1042 浏览

php - Blackfire 无法使用 WAMP 在 Windows 上创建网络流

我正在尝试使用 Blackfire 分析 HTTP 请求。我已经安装了这些元素:

  • blackfire-agent 及其配置文件(带有我的服务器 ID)
  • blackfire 客户端,我用(我的客户端 ID)配置它(我启动了C:\Users\a.t>blackfire config
  • blackfire php 探针(dll、php.ini 是用我的服务器 ID 编辑的)

但我仍然发现一个错误:

C:\Users\a.t>blackfire curl --resolve 'simdate.dev:80:127.0.0.1' http://simdate.dev/

您是否有权配置此页面?没有探测响应、缺少 PHP 扩展或中继代理的签名无效。

  • Xdebug 和其他调试扩展在 php.ini 文件中被禁用
  • 客户端 ID 和客户端密钥不同于服务器 ID 和服务器密钥。
  • Blackfire Agent 也在运行(如果我停止它,我也会遇到同样的错误)

这是我在 php 中声明的日志文件中的日志文件:

这是我从 blackfire-agent 输出的日志。正如你所看到的,他似乎从来没有捕捉到联系:

这是两张截图

第一个显示禁用的 Xdebug XDebug 被禁用 第二个显示我的 blackfire php 配置(xxxx 和 yyyy 是屏幕截图的实际值)phpinfo信息

Windows 防火墙已被禁用。

0 投票
2 回答
770 浏览

php - Laravel / Blackfire - 包括自动加载器在内的作曲家需要大量时间

我正在使用Blackfire来分析我的 PHP / Laravel 应用程序。在大多数端点上,Composer 似乎需要很长时间。具体来说,方法Composer\Autoload\includeFile。在下面的示例中,它被调用了 240 次。

现在我已经运行composer dump-autoload --optimizeopcache启用了。这种行为是正常的还是表明存在问题?我的理解是自动加载器应该只需要包含一次。

黑火截图 1 黑火截图 2

0 投票
1 回答
1037 浏览

php - 使用 Blackfire Profiling 识别 Laravel 应用程序的瓶颈

我正在尝试将我的 TTFB 降低到 200 毫秒以下。目前超过600ms。

我的应用程序使用 Laravel 和 AsgardCMS。我实现的自定义代码很少,数据库有 28 个表,总共不到 100 条记录。

我已经安装了 Redis 缓存(并打开了缓存),然后运行php artisan optimize​​.

我还通过 Apache 使用 Nginx Engintron

基本上我已经尽可能多地消除瓶颈!

然而,在安装 Blackfire 之后,它报告说它Composer\Autoload\includeFile自己总共需要 250 毫秒(超过 299 次调用)。

Illuminate\Container\Container::build也被调用了 141 次,总时间为 49 毫秒。

我接受这样多次调用自动加载器是正常的,但它真的需要 250 毫秒吗?

我的 VPS 有 2 个内核(Intel Xeon CPU)和 4GB RAM(专用)。我刚刚从 1 核和 2GB RAM 升级,但几乎没有注意到任何区别。磁盘是SSD。顺便说一句,在 WHM/cPanel 上运行。服务器上大约有 10 个站点,但没有一个站点的流量特别高,而且这些测试都是在最安静的时期运行的。

在最后一次测试运行中,Blackfire 报告:-

有任何想法吗?漂亮请...

0 投票
1 回答
98 浏览

php - How to profile only parts of the code with Blackfire?

Reading https://blackfire.io/docs/reference-guide/php-sdk I see that

The $probe instance can also be used to instrument precisely only part of your code

But

get me the following graph:

But I only wanted to benchmark

How could I do this?