ARPerformanceScout 0.0.1

ARPerformanceScout 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未申报 维护。



  • 作者
  • Claudiu-Vlad Ursache

⊛ ARPerformanceScout ⊛ 是一个用于发现 Objective-C 性能瓶颈的瘦工具。

  • 确定一段代码是否阻塞了 UI。
  • 测试代码执行在各个线程之间跳转时的性能。
  • 进行多线程编程的实验。

如何开始

使用

测量运行时间

在源代码中

/* Measures the time taken to run a piece of code on the current thread */

ARpS_measure(^{
        [self writeSomethingToAFile_blocksTheUI];
    });

生成的日志消息

≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌
⊛ ARPerformanceScout ⊛

✔ Measured: 2.512919s
≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌

阻止线程

当不确定一个方法是否阻止 UI 时,调用 ARpS_blockThread() 可以很快使其明显。

 /* blocks the current thread for 3 seconds */
 ARpS_blockThread(3);

测试事件

当应用的不同部分的的两段代码需要计时,ARpS_startTimer()ARpS_stopTimerAndLog() 可以帮助。

调用这两个函数

/* FirstSourceFile.m */

- (void)firstDummyMethod {
        ...
        ARpS_startTimer();
}

/* SecondSourceFile.m */

- (void)secondDummyMethod {
        ...
        ARpS_stopTimerAndLog();
}

结果是一个日志

≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌
⊛ ARPerformanceScout ⊛

✔ Timed: 15.291372s
≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌

注意事项

  • 用户应该小心关于 blocks 中的 retain-cycles(拥有 weakSelf 代码片段 是一个好主意。)
  • ARpS_measure() 只会考虑在其上调用它的线程所做的操作

联系方式

Claudiu-Vlad Ursache

Artsy

许可证

ARPerformanceScout 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。