jaapio / phpbench-blackfire
phpbench的黑火执行器
Requires
- composer-plugin-api: ^1.1|^2.0
- blackfire/php-sdk: ^1.21
- phpbench/phpbench: ^0.17.0
Requires (Dev)
- composer/composer: ^1.9|^2.0
This package is auto-updated.
Last update: 2023-10-29 20:58:56 UTC
README
此仓库包含一个PHPBench Blackfire扩展,它允许您使用Blackfire.io来分析您的基准测试。该扩展包含一个自定义执行器和记录器。执行器可以在没有记录器的情况下使用,没有执行器则不能使用记录器。
请注意,记录器使用的是高级/企业版Blackfire功能,使用记录器是可选的。
安装
由于PHPBench使用自动加载器加载扩展类,因此它需要通过composer安装扩展。此外,此扩展正在构建自己的自动加载器,用于在基准测试执行期间连接到Blackfire。因此,唯一的安装方法是composer。
要安装此扩展,请执行以下命令。
composer require phpbench/phpbench jaapio/phpbench-blackfire
此扩展需要Blackfire代理来对执行的基准测试进行代码注入,就像使用blackfire.io的任何其他实现一样。
配置
要启用扩展,请将扩展添加到您的PHPBench配置中。扩展将像以下示例所示从PHPBench配置中选取设置。config
和env
都是可选的。
当您的Blackfire账户没有环境时,可以省略env
。
config
是包含用于与Blackfire API进行认证的客户端ID和客户端令牌的Blackfire ini文件的路径。省略config
设置时,将查找用户的家目录中的配置文件。最后的回退是环境变量BLACKFIRE_CLIENT_ID
、BLACKFIRE_CLIENT_TOKEN
和BLACKFIRE_ENDPOINT
。
{ "bootstrap": "vendor/autoload.php", "path": "tests/benchmark", "extensions": [ "Jaapio\\Blackfire\\Extension" ], "blackfire" : { "config": 'path/to/blackfire.ini', "env": "<id>" } }
执行
要运行具有完整功能的构建,您可以执行以下命令。phpbench run -l blackfire --executor=blackfire --tag="Build_name"
参考
PHPBench允许您为每个基准测试设置引用。这些引用将转换为配置报告中的步骤,并在Blackfire中可见。
断言 (高级/企业版)
Blackfire有添加断言的选项。此扩展支持在基准测试上设置的执行器注释中的这些断言。表达式不会被扩展解析,而是原样传递。有关断言的更多信息,请参阅Blackfire文档。
class YourBench
{
/**
* @Executor(
* "blackfire",
* assertions={
* {"expression"="main.peak_memory < 11kb", "title"="memory peak"},
* "main.wall_time < 1ms"
* }
* )
*/
public function benchMd5() : void
{
md5('test');
}
迭代和变体
每次基准测试的执行,包括迭代和变体,都作为单独的配置文件发送到Blackfire。请注意,当错误地使用此扩展时,创建的配置文件数量可能非常大。我不建议结合大量基准测试使用大量迭代。这很可能会使您的Blackfire账户过载。