hoa/bench

此包已废弃,不再维护。未建议替换包。

Hoa\Bench 库。

3.17.01.11 2017-01-11 08:05 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa 是一组 模块化可扩展结构化 的 PHP 库。
此外,Hoa 致力于成为工业界和学术界之间的桥梁。

Hoa\Bench

Help on IRC Help on Gitter Documentation Board

此库允许通过在代码中放置一些“标记”来分析算法或程序的性能。此外,此库还提供了一些 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

获取帮助

主要有两种方式可以获得帮助

贡献

你想做出贡献吗?感谢!一份详细的 贡献指南 解释了你需要了解的一切。

许可证

Hoa 采用新的 BSD 许可证 (BSD-3-Clause)。请参阅 LICENSE 获取详细信息。

相关项目

以下项目正在使用这个库