hoa / bench
Hoa\Bench 库。
Requires
- hoa/consistency: ~1.0
- hoa/exception: ~1.0
- hoa/iterator: ~2.0
This package is auto-updated.
Last update: 2021-09-20 08:30:17 UTC
README
Hoa 是一组 模块化、可扩展 和 结构化 的 PHP 库。
此外,Hoa 致力于成为工业界和学术界之间的桥梁。
Hoa\Bench
此库允许通过在代码中放置一些“标记”来分析算法或程序的性能。此外,此库还提供了一些 DTrace 程序。
了解更多.
安装
使用 Composer,要将此库包含到您的依赖中,您需要要求 hoa/bench
$ composer require hoa/bench '~3.0'
有关更多安装程序,请阅读 源代码页面。
测试
在运行测试套件之前,必须安装开发依赖项
$ composer install
然后,要运行所有测试套件
$ vendor/bin/hoa test:run
有关更多信息,请阅读 贡献者指南。
快速使用
我们提供两种用法的快速概述:库本身和一项 DTrace 程序。
基准测试
我们只需在代码中放置不同的标记。标记可以启动、暂停、停止和重置。类 Hoa\Bench\Bench
提供了一个快速统计图表,可能很有帮助
$bench = new Hoa\Bench\Bench(); // Start two marks: “one” and “two”. $bench->one->start(); $bench->two->start(); usleep(50000); // Stop the mark “two” and start the mark “three”. $bench->two->stop(); $bench->three->start(); usleep(25000); // Stop all marks. $bench->three->stop(); $bench->one->stop(); // Print statistics. echo $bench; /** * Will output: * __global__ |||||||||||||||||||||||||||||||||||||||||||||||||||| 77ms, 100.0% * one |||||||||||||||||||||||||||||||||||||||||||||||||||| 77ms, 99.8% * two |||||||||||||||||||||||||||||||||| 51ms, 65.9% * three |||||||||||||||||| 26ms, 33.9% */
还有更多操作可用,例如遍历所有标记、删除标记、过滤标记等。
DTrace
一个有趣的 DTrace 程序是 hoa://Library/Bench/Dtrace/Execution.d
,它显示了执行期间的调用跟踪、错误和异常。例如,如果我们考虑包含以下代码的 Dtrace.php
文件
<?php function f() { g(); h(); } function g() { h(); } function h() { } f();
然后,我们可以这样运行 DTrace
$ exed=`hoa protocol:resolve hoa://Library/Bench/Dtrace/Execution.d` $ sudo $exed -c "php Dtrace.php" Request start 2ms ➜ f() …/Dtrace.php:007 37ms ➜ g() …/Dtrace.php:003 26ms ➜ h() …/Dtrace.php:004 28ms ← h() 37ms ← g() 44ms ➜ h() …/Dtrace.php:003 25ms ← h() 30ms ← f() Request end
另一个程序显示了有关执行的统计信息:每个已调用的函数、调用次数、执行时间等。
文档
Hoa\Bench 的黑客手册 包含有关如何使用此库及其工作原理的详细信息。
要本地生成文档,请执行以下命令
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
更多文档可以在项目网站上找到: hoa-project.net。
获取帮助
主要有两种方式可以获得帮助
- 在
#hoaproject
IRC 频道中, - 在 users.hoa-project.net 的论坛上。
贡献
你想做出贡献吗?感谢!一份详细的 贡献指南 解释了你需要了解的一切。
许可证
Hoa 采用新的 BSD 许可证 (BSD-3-Clause)。请参阅 LICENSE
获取详细信息。
相关项目
以下项目正在使用这个库
- Symfony Bench Bundle,
Hoa\Bench
Symfony 2 扩展包。