kozalo / stopwatches
This package is not auto-updated.
Last update: 2024-09-23 15:20:39 UTC
README
俄语用户
此套件包含多个秒表,用于测量您的脚本执行时间(尽管不仅限于此)。
秒表
一个基本类,提供启动秒表(Start())、停止(Stop())和继续(GoOn())的功能。
Start() 与 GoOn() 的区别在于它会重置计时器。在连续的停止和继续计时后,总时间将相加。它们在调用时都返回 timestamp,表示启动秒表的时间。
还有一个名为 IsRunning() 的方法,如名称所示,如果计时器正在运行则返回 true,否则返回 false。
SessionStopwatch
在标准秒表之上的扩展。使用它,可以在PHP会话中存储数据集。
具有与基本类相同的方法,但构造函数和启动/继续方法接受字符串标记作为参数。构造函数中的字符串用作数组键和测量的名称。启动方法中的字符串用于为不同的测量部分提供有意义的名称。
这可能在测量网页不同部分的执行时间时很有用。为此,创建一个带有页面名称的会话秒表对象,然后重复启动/继续和停止计时,将每个代码块包裹起来(同时给每个块赋予有意义的标记),最后在测量结束时调用 SaveToSession() 方法,以将测量结果保存到会话中。此时,新结果不会覆盖旧结果,而是作为新元素添加。例如,数组可能有一个键 '主页',其下是一个包含编号元素的测量数组。每个测量都有一个 request_time 字段,包含执行时间的字符串表示,以及一个 timings 数组,包含测量过程中的各个阶段(此外,还有一个 total_elapsed_time 字段,表示所有阶段的总执行时间)。每个阶段的结构如下
label(string) — 启动测量时指定的标记。start_time(float) — 测量开始的时间;微秒时间戳。stop_time(float) — 与前一个类似,但表示停止测量时的时间。elapsed_time(float) — 执行该步骤所花费的微秒时间。total_elapsed_time(float) — 与前一个类似,但加上之前步骤的执行时间。
可以使用静态方法 GetInformationFromSession() 获取测量结果。使用 print_r() 函数打印出其中一个测量的示例,可以在 result.example 文件中找到。
异常
在执行测量过程中可能会抛出一些异常。
AlreadyStartedStopwatchException— 如果尝试启动已经启动的秒表,则会抛出。NoStartedStopwatchException— 如果尝试停止未启动的秒表,则会抛出。
英文
秒表
这是一个测量经过时间的基类。以下列出了以下方法:
Start()— 从零开始新的测量并返回一个 timestamp,描述调用它的那一刻的时间。Stop()— 停止秒表并返回总的经过时间。GoOn()— 从停止时的时间开始测量。IsRunning()— 如果秒表正在运行则返回 true,否则返回 false。
SessionStopwatch
这个类扩展了Stopwatch的功能。它使用PHP会话来存储多个测量的数组。如果您想稍后分析多个测量结果,这可能很有用。
它具有与Stopwatch相同的函数,但有一些差异。
__construct($name)— 构造函数接收一个测量名称。它用作数组的键。Start($label)和GoOn($label)— 这些方法接收字符串来标记使用该代码块的代码块。
结果数组的结构如下示例所示
- 构造函数名称
- [0]:
request_time— 执行测量的时间。计时:- [0]:
标签start_time— 测量代码块开始时的微秒时间。stop_time— 测量代码块停止时的微秒时间。elapsed_time— 花费的微秒时间量。total_elapsed_time— 执行此代码块和所有之前代码块所花费的总微秒时间。
- [1]: ...
total_elapsed_time— 执行所有代码块所花费的总微秒时间。
- [0]:
- [1]: ...
- [0]:
- 另一个构造函数名称:...
我强烈建议您检查我的测量示例。请参阅文件result.example。
此外,它还添加了两个用于处理会话的新方法
SaveToSession()— 只有在您调用此方法后,所有测量数据才会保存到会话中。GetInformationFromSession()— 一个静态方法,让您获取结果。
异常
在使用库时,您可能会遇到两种异常。
AlreadyStartedStopwatchException— 如果您尝试启动或继续一个已经运行的计时器,将会抛出此异常。NoStartedStopwatchException— 如果您尝试停止一个未运行的计时器,将会抛出此异常。