NRGProfiler 1.0.1

NRGProfiler 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布最新版本2015年8月

Georgiy Malyukov 维护。



NRGProfiler 是一个基于 MTU(Mach 时间单元)的简单的Objective-C性能分析库。您可以在任何需要的时候创建新的分析器,并记录任意数量的“安全区域”,直到您停止它。您只需要保持对新创建的分析器的强引用,直到它停止。

NRGProfiler 使用标准的 NSLog() 函数来同步地将您的日志打印到主线程,以便在任何时候保持日志的最新性。

将 NRGProfiler 添加到您的项目中

源文件

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

  1. 下载最新的代码版本最新代码版本或将存储库作为 Git 子模块添加到您的 Git 追踪项目中。
  2. 在 Xcode 中打开您的项目,然后将 NRGProfiler.hNRGProfiler.m 拖放到您的项目中(使用“产品导航视图”)。如果您在项目外部解压缩了代码存档,确保在询问时选择复制项。
  3. 使用 #import "NRGProfiler.h" 将 NRGProfiler 添加到您需要的位置。

使用方法

当您想要开始对一些关键代码进行分析时,只需调用静态方法来启动一个新的分析器。

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

// or use shorter version
NRGProfiler *profiler = [NRGProfiler 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 来创建一个新的分析器,不再需要保持已停止分析器的强引用。您还可以使用 restartrestartWithMessage: 函数来更新现有的分析器,再次使用它。

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

线程安全

您在操作线程时对 NRGProfiler 是自由的。NRGProfiler 使用标准的 NSLog() 函数打印日志并使用系统函数来测量时间。您应该记住,在创建它们的同一线程中使用您的分析器。

工具

NRGProfiler有一个自己的宏包装的NSLog()函数,称为NRGDLog(),在生产模式下将自动禁用,因为Release项目方案会自动删除预处理器常量DEBUG

示例

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

许可

Apache。有关详细信息,请参阅LICENSE文件。