我最近尝试回答基于速度的问题here,并且需要一些方法来衡量各种操作的工作时间。我看到人们偶尔提到不同编码方法的速度,我想知道,在Objective-C中测量速度性能的最佳方法是什么?
以下是我一直在使用的内容:
NSDate* operation = [NSDate date];
// Code you want to measure goes here
NSLog(@"Time: %f", -[operation timeIntervalSinceNow]);
这是一个可接受的,有用的测量方法,还有更好的替代方法吗?
答案 0 :(得分:0)
当然,这很有效。我倾向于使用NSTimeInterval变量和
-[NSDate timeIntervalSinceReferenceDate]
方法,因为这给了我一个标量常量,我可以直接进行数学运算(结束时间间隔 - 开始时间间隔=经过时间)
如果你有一个特定的代码块,你想测量它的性能,这才真正有用。使用“仪器”工具可以全局监控程序在不同代码块中花费的时间,这通常更有用。它可以让您找到代码中的“瓶颈”,这有助于您找到最佳的优化候选者。
答案 1 :(得分:0)
Stephen Canon在这个帖子How to log a method's execution time exactly in milliseconds?中的回答(23个赞成票)更准确。