emoretti/kronos

Kronos 是一个 PHP 库,它允许计算页面和代码块(称为 CheckPoint)的执行时间,精度高达 1 μs

dev-master 2018-03-27 07:02 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:47:45 UTC


README

Kronos 是一个 PHP 库,它允许计算页面和代码块(称为 CheckPoint)的执行时间,精度高达 1 μs

安装

使用以下命令安装最新版本:

$ composer require emoretti/kronos ^dev-master

报告示例

alt text

配置

不需要配置

基本用法

在页面开始时创建 Kronos() 类的一个实例,传递页面 "别名" 名称和 可选的 初始浮点时间戳(如果未传递,Kronos 将为您计算时间戳)。
在页面结束时调用 setMainEnd() 方法,可选地传递结束的浮点时间戳(如果未传递,Kronos 将为您计算时间戳)。
最后,您可以通过调用 getReport() 方法在页面下方渲染最终报告,或者通过调用 getReportRaw() 方法获取包含所有数据的数组。
getReport() 接受 PHP 风格的 dateFormat 作为输入

<?php
	
	use emoretti\kronos\Kronos;

	$myKronos = new Kronos("pageAlias"); 


	[... YOUR CODE ...]


	[... YOUR CODE ...]

	
	$myKronos->setMainEnd(microtime(true));


	$myKronos->getReport(); // OR $myKronos->getReportRaw();
?>

检查点使用

在声明 Kronos() 实例之后

在您的代码中间(您想放置的位置),您可以插入一个检查点,它允许您创建其他统计数据。
要创建检查点,请使用 startCheckPoints()stopCheckPoints() 方法,传递检查点别名(它将是您的检查点的键),以及可选的浮点时间戳(如果未传递,Kronos 将为您计算时间戳)。

<?php
	
	use emoretti\kronos\Kronos;

	$myKronos = new Kronos("pageAlias"); 


	[... YOUR CODE ...]
	
	$myKronos->startCheckPoints("FirstCheckPoint",microtime(true));

	usleep(mt_rand(500, 3000));

	$myKronos->stopCheckPoints("FirstCheckPoint",microtime(true));

	[... YOUR CODE ...]

	
	$myKronos->setMainEnd(microtime(true));


	$myKronos->getReport(); // OR $myKronos->getReportRaw();

?>

Kronos 结果

Kronos 结果可以是

  1. 在检查的页面底部渲染

    	$myKronos->getReport();
  2. 以数组结构返回(或如果传递第一个参数为 true,则为 json)

    	\\Array structure output
    	$myKronos->getReportRaw();
    	\\Json structure output
    	$myKronos->getReportRaw(true);
  3. 保存到文件(文件将包含 json)

    	$myKronos->saveReportData(__DIR__ . "/report.json");



    如果您要保存数据以稍后获取报告,可以使用静态方法 Kronos::renderReport(),传递 $reportName 和 $reportData

    	use emoretti\kronos\Kronos;
    	require_once("src/Kronos.php"); 
    	Kronos::renderReport("TestReport", file_get_contents(__DIR__."/report.json"));

Kronos 渲染

Kronos 将通过其模板引擎 KronosTemplate() 渲染数据,默认模板是:src/template/KronosTemplate.php(它使用 Bootstrap.min.css),您可以根据需要修改它(请注意不要更改模板中的变量名称)。

您可以指定那些方法的首选日期格式

  1. getReport ($dateFormat = "d/m/Y H:i:s:u" )
  2. getReportRaw ($json= false , $dateFormat = "d/m/Y H:i:s:u" )
  3. renderReport( $name , $data , $dateFormat='d/m/Y H:i:s:u' )

Kronos 执行时间

Kronos 将自动尝试确定其执行时间,它将自动显示在最终报告中,可能有助于确定类本身使用的时间。
注意。Kronos 尝试计算其执行时间。但这些时间应被视为近似值。请记住:0.001 毫秒 == 1 µs(在 1 µs 内,光行进 299.792458 米)。

作者

Ettore Moretti - info@ettoremoretti.com - https://twitter.com/emoretticom - https://#/emoretticom/

许可证

href-count 在 MIT 许可证下发布 - 有关详细信息,请参阅 LICENSE 文件