ios - 如何测量 iOS 的 Objective-C 中两行代码之间花费的时间?

标签 ios objective-c xcode cocoa-touch

我有以下代码需要一段时间才能处理:

self.itemsArray = [Helper changeTheA:self.itemsArray];
self.itemsArray = [Helper convertDates:self.itemsArray];

有没有一种方法,在 Instruments 或其他地方,我可以测量从第一行代码到第二行代码所花费的时间......以滴答或毫秒或其他什么为单位?

我想做一些调整,但我需要能够进行测量,以查看我是否对以前的代码进行了改进。

最佳答案

最快、最脏、可能不是很精确的方法

NSDate *startDate = [NSDate date];

self.itemsArray = [Helper changeTheA:self.itemsArray];

NSLog(@"changeTheA time taken: %f", -[startDate timeIntervalSinceNow]);

一个稍微复杂但可能更有用的解决方案,如果您正在做一些基本的分析,可以看到 here ,它使用 C 函数来执行您提供的 block 。


大边注

正如 Justin 指出的,创建 NSDate 然后将其注销的实际行为会给您的测量带来干扰,因此这种技术仅对获得大概数字有任何好处,即便如此,您应该可能在计时 block 内运行大量的代码迭代。如果您需要准确的测量值,请跳至 Justin 的回答

关于ios - 如何测量 iOS 的 Objective-C 中两行代码之间花费的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10219571/

相关文章:

objective-c - 如何在编译时忽略一些静态库

ios - 有没有办法在团队中共享 Xcode 模板?

iOS Swift 3 在显示键盘时将 TableView 内容保持在正确的位置

iphone - 以编程方式创建两个 UIPickerViews 但所有值都排在第二位

objective-c - 递归-flattenMap : with Reactive Cocoa + OctoKit (fetching dynamic object graph from web service)

objective-c - 获取CCSprite在cocos2d中的绝对位置

ios - 前景色不适用于属性文本

ios - 覆盖滚动指示器的 UICollectionView 单元格

iphone - 增加框架时自动调整 mask 大小问题 - iOS

xcode - 如何为 Mac App Store 协同设计框架包?