DDLTimeProfiler 1.0.4

DDLTimeProfiler 1.0.4

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015 年 5 月

Georgiy Malyukov 维护。



DDLTimeProfiler 是一个基于 Objective-C 中 MTU(Mach Time Units)的简单时间分析库。您可以在任何时间创建一个新的分析器,并在需要时记录任何数量的“安全点”,直到您停止它。您只需要保留创建的分析器的强引用,直到它停止。

DDLTimeProfiler 使用标准的 NSLog() 函数将您的功能点同步地打印到主线程中,以保持日志在任何时间都是最新的。

将 DDLTimeProfiler 添加到您的项目中

源文件

或者,您可以直接将 DDLTimeProfiler.hDDLTimeProfiler.m 源文件添加到您的项目中。

  1. 下载最新代码版本或将存储库作为 git 子模块添加到您的 tracks git 项目中。
  2. 在 Xcode 中打开您的项目,然后拖放 DDLTimeProfiler.hDDLTimeProfiler.m 到您的项目(使用“Product Navigator 视图”)。如果您在项目外部提取了代码档案,确保在提示时选择复制项目。
  3. 使用代码 #import "DDLTimeProfiler.h" 在您需要的位置包含 DDLTimeProfiler。

用法

当您想要分析一些关键代码时,只需通过调用静态方法来启动一个新的分析器

DDLTimeProfiler *profiler = [DDLTimeProfiler startWithMessage:@"I'm profiling my special code!"];

// or use shorter version
DDLTimeProfiler *profiler = [DDLTimeProfiler start];

请注意,如果您不需要,您可以使用不带输入消息的短方法版本。库中的每个方法都有自己的详细和简短版本。

现在分析就开始了。当您需要记录一个点时,请调用此方法

[profiler pointWithMessage:@"I've finished some kind of work!"];

如果您保留了您的点值(以纳秒为单位转换的高精度秒保留的值) - 您可以使用它进行进一步测量。例如,在这个场景中

double p1 = [profiler point];
// some critical code block
// ...
double p2 = [profiler point];

NSLog(@"My critical code passed in %.3f", p2 - p1); // just subtract them

当您想要完成测量时,通过调用 stop 来停止一个分析器

[profiler stopWithMessage:@"Some profiling finished!"];

之后,您可以根据上面看到的方法调用 start 创建一个新的分析器,不再需要保留对已停止分析器的强引用。

您可以创建任意数量的分析器,只需确保您保留它们的强引用。

线程安全

DDLTimeProfiler 使用标准的 NSLog() 函数来打印日志,以及用到系统函数来测量时间,但是您必须保留您创建的每个分析器的强引用,因此它不是线程安全的。您应该记住在创建分析器的同一线程中使用您的分析器。

示例

您可以在 示例 文件夹中找到示例应用程序。

许可证

MIT。请参见 LICENSE 了解详细信息。