GDXProfiler 1.0.0

GDXProfiler 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可协议 自定义
发布最后发布2015年9月

Georgiy Malyukov维护。



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

GDXProfiler使用标准的NSLog()函数来同步地把您的位置打印在主线程中,以保持记录的任何时间点都是最新的。

将GDXProfiler添加到您的项目

源文件

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

  1. 下载最新的代码版本点击这里,或将其存储库作为一个git子模块添加到您的git跟踪项目中。
  2. 打开Xcode中的您的项目,然后从“产品导航视图”中将 GDXProfiler.hGDXProfiler.m 拖放到项目上(在提取代码存档时,如果被提示,请选择Copy items)。
  3. 您可以通过在需要的位置包含如下代码来添加GDXProfiler:#import "GDXProfiler.h"

使用方法

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

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

// or use shorter version
GDXProfiler *profiler = [GDXProfiler 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: 函数来更新现有的分析器并再次使用它。

您可以创建尽可能多的分析器,只需确保您保持对它们的强引用。

线程安全

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

实用工具

GDXProfiler有一个自己的NSLog()函数包装宏,称为GDXDLog(),在发布模式中会自动禁用,因为在生产项目方案中移除了自动DEBUG预处理器常量。

示例

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

许可证

Apache许可证。有关详细信息,请参阅LICENSE