gamernetwork/yolk-profiler

游戏网络公司的PHP性能分析库

v1.0 2015-07-24 13:21 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:06:34 UTC


README

想要为游戏网络工作吗? 我们正在招聘!

Yolk Profiler

Scrutinizer Code Quality

一个简单的性能分析库,用于基准测试代码执行速度、内存使用和数据库查询。

要求

此库需要PHP 5.4或更高版本以及Yolk Contracts包(gamernetwork/yolk-contracts)。

安装

可以通过Composer以gamer-network/yolk-profiler的方式安装和自动加载。

或者,下载一个版本或克隆此存储库,并将\yolk\profiler命名空间添加到自动加载器中。

许可证

Yolk Profiler是开源软件,许可协议为MIT。

快速开始

use yolk\profiler\GenericProfiler;

$profiler = new GenericProfiler();

$profiler->start('Op 1');
lengthyOperation1();
$profiler->stop('Op 1');

$profiler->start('Op 2');
lengthyOperation2();
$profiler->stop('Op 2');

// profile a query
$profiler->start('Query1');
doDatabaseQuery($sql, $params);
$profiler->stop('Query1');

$profiler->query($sql, $params, $profiler->getElapsed('Query1'));

// add some additional info
$profiler->meta('get', $_GET);
$profiler->meta('post', $_POST);

$profiler->stop();

// assign a configuration object to the profiler to be included in the report
$profiler->config(Config $config);

// get a report
print_r(
	$profiler->getData()
);

计时器

GenericProfiler使用GenericTimer类,该类也可以独立使用来记录以微秒分辨率的时长。

use yolk\profiler\GenericTimer;

$t = new GenericTimer();

$t->start();
$t->isRunning();	// returns true
$t->getElapsed();	// returns microseconds since last call to start()
$t->stop();
$t->isRunning();	// returns false
$t->getTotalElapsed();	// returns microseconds between all calls to start()/stop()

调试栏

提供了一个HTML调试栏,可以渲染到网页上,并以美观的方式展示性能分析器的数据。

可以通过在性能分析器上调用getHTML()方法来获取相关的HTML,然后将其插入到模板中,发送给客户端等。

调试栏的源代码是自包含的,设计用于放置在关闭</body>标签之前。