bahge / analysys-tools
该软件包最新版本(v1.0.0)没有可用的许可证信息。
性能分析工具库。
v1.0.0
2023-11-21 02:50 UTC
This package is not auto-updated.
Last update: 2024-09-25 05:20:58 UTC
README
创建的库,用于应用性能分析,通过计算步骤的秒数进行计算。
用例
代码的执行时间和性能分析
- 启动计时器
使用静态方法PerformanceTracker::create()
,实例化到您想要操作的变量中,这里命名为$performanceTracker
。 - 添加分析点
通过addMarkTracker(string $mensagem)
方法添加,描述信息应尽量客观,信息量越大,消耗的资源越多。 - 捕获事件
可以通过方法getEventsTrackerToJson()
和getEventsTracker()
返回事件;
第一个方法返回 JSON 格式,第二个方法返回 PHP 序列化格式,如下所示,为每个方法的示例部分。 - 捕获总计
处理时间总计可以通过方法calc()
或getTotals()
返回。建议使用getTotals()
进行显示,因为它已经格式化为字符串。另一方面,方法calc()
仅返回格式化后的数字,按 pt-br 标准显示(例如,用于保存到日志和数据库,不推荐)。
<?php use Bahge\AnalisysTools\Domain\PerformanceTracker; require '../vendor/autoload.php'; $performanceTracker = PerformanceTracker::create(); for ($i=0; $i < (2 ** 6); $i++) { sleep(rand(0,1)); // Apenas como critério de teste, para gerar randomicamente uma pausa $performanceTracker->addMarkTracker("Iteração: $i"); } echo $performanceTracker->getEventsTracker() . PHP_EOL; echo $performanceTracker->getEventsTrackerToJson() . PHP_EOL; echo $performanceTracker->getTotals() . PHP_EOL; echo $performanceTracker->calc() . PHP_EOL;
在测试中,生成 64 个步骤,并使用
getEventsTracker(), getEventsTrackerToJson()
函数打印所有结果,结果如下:Impressão dos eventos serializados: i:4;:a:3:{s:4:"time";d:1700533033.571543;s:3:"msg";s:18:"Inicio dos eventos";s:15:"processing_time";i:0;}:a:3:{s:4:"time";d:1700533033.571992;s:3:"msg";s:13:"Iteração: 0";s:15:"processing_time";s:10:"0.00044894";}:a:3:{s:4:"time";d:1700533033.572084;s:3:"msg";s:13:"Iteração: 1";s:15:"processing_time";s:10:"0.00009203";} ... Impressãos dos eventos em json: [{"msg":"Inicio dos eventos","processing_time":0},{"msg":"Iteração: 0","processing_time":"0.00044894"},{"msg":"Iteração: 1","processing_time":"0.00009203"},{"msg":"Iteração: 2","processing_time":"0.00007010"},...] Tempo de execução em laço for pelo método getTotals(): Processado em: 30.0108 segundos. Tempo de execução em laço for pelo método calc(): 30,0108 Consumo de memória: 48,06 Kb有 30 次迭代,每次迭代睡眠 1 秒,随机生成。 请谨慎使用
分析应用内存使用情况
- 启动内存计数器
使用静态方法MemoryUse::create()
,实例化到您想要操作的变量中,这里命名为$memoryUse
。 - 捕获总计
内存使用总量可以通过方法calc()
、calcKb(int <precision>)
或calcMb(int <precision>)
返回。
分别返回字节、千字节和兆字节值,建议使用第一个进行保存,其他用于屏幕显示,精度(小数点后的零)根据参数按需更改。
<?php use Bahge\AnalisysTools\Domain\MemoryUse; require '../vendor/autoload.php'; $memoryUse = MemoryUse::create(); $array = []; // 1024 iterações for ($i=0; $i < (2 ** 10); $i++) { array_push($array, $i); } echo implode(",", $array) . PHP_EOL; echo $memoryUse->calcKb() . PHP_EOL;
返回示例
0,1,2,3,4,5 ... 1023calcKb() 内存消耗
36.12 Kb执行时间:处理时间为:0.0009 秒