opxcore/profiler

OpxCore 性能分析器。

1.1.0 2021-02-11 14:01 UTC

This package is auto-updated.

Last update: 2024-09-11 21:58:42 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads License

创建

只需创建一个新的性能分析器类实例,它就准备好了。你可以传递外部捕获的性能分析开始时间和内存使用情况。否则,它将在性能分析器创建时自动捕获。

示例

use OpxCore\Profiler\Profiler;

$startTime = hrtime(true);
$startMemory = memory_get_usage();

$profiler = new Profiler($startTime, $startMemory);

要禁用性能分析,你应该调用 $profiler->enable(false)$profiler->enable() 以再次启用它。默认情况下,性能分析是启用的。

性能分析

有两种方法:start($action)stop($action)$action 是性能分析条目的名称。 start 捕获当前时间和内存使用情况(或可以使用与构造函数中相同的方式使用外部捕获)。 stop 也捕获时间和内存使用情况(或使用外部捕获)并写入性能分析条目。

结果

$profiler->profiling() 返回包含条目的完整数组(如果性能分析已禁用则为 null),并根据动作触发时的时间排序。

每个条目都是一个具有以下键的数组

  • action_name - 你传递给 start()stop() 函数的动作的名称;
  • started_at - start 被触发时的时间,与传递给构造函数的起始时间相关(或捕获在那里),或者如果没有为该动作触发起始,则为 stop 被触发的时间;
  • execution_time - 从起始到停止的时间,如果没有起始则为 null;
  • used_memory - 从起始到停止的内存差异,如果没有起始则为 null;
  • total_memory - 动作停止时的总内存使用量;
  • trace - 函数调用的堆栈跟踪,排除调用性能分析器方法(或外部捕获并传递给 stop() 函数作为第四个参数)。