【发布时间】:2013-12-14 16:45:21
【问题描述】:
有什么方法可以比较使用 Instruments 保存的跟踪文件。我怎样才能比较有关应用程序的连续实现构建的任何方式。
免得说我发布 iPhone 应用程序 1.0 版,然后在 2 个月内发布 1.1。在内存和时间方面进行分析比较的最佳方法是什么?
【问题讨论】:
标签: ios xcode comparison instruments
有什么方法可以比较使用 Instruments 保存的跟踪文件。我怎样才能比较有关应用程序的连续实现构建的任何方式。
免得说我发布 iPhone 应用程序 1.0 版,然后在 2 个月内发布 1.1。在内存和时间方面进行分析比较的最佳方法是什么?
【问题讨论】:
标签: ios xcode comparison instruments
您可以保存跟踪文件。但是为了在未来某个日期解释这些结果是合理的,在您的跟踪中插入“标志”以标记重要事件很有用,这样您就可以知道应用在跟踪中的显着点上做了什么。
过去,我建议包含以编程方式插入的标志,以便您将来有一些比较基础,但这在 iOS7 中被打破了。但是如果你在 7.0 之前的 iOS 模拟器上运行它,你可以:
将DTPerformanceSession.framework 添加到您的项目中;
在您的来源中:
#import <DTPerformanceSession/DTSignalFlag.h>
然后,在您的源代码中,您可以以编程方式在 Instruments 中插入标志(在 iOS7 之前的模拟器上运行时):
// Point flag (just an event in time)
DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE);
// Start flag (to mark the start of something)
DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE);
// End flag (to mark the end of something)
DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE);
从您的项目中删除 DTPerformanceSession.framework(添加它的过程让 Xcode 解析标头,但您不想将其保留在您的 iOS 项目中,否则您会遇到链接错误)。
您可能希望保留相应存档的副本,以便在将来某个日期重新符号化跟踪文件。
显然,如果在 iOS7 中进行分析,您可以自己手动添加标志,但它并不像以编程方式进行标志那样优雅或严格。
【讨论】:
我认为最好的方法是:
Instruments。单击“库”按钮并添加您要跟踪的内容。对我来说是这样的:
选择您的 iOS 设备作为目标。然后你的应用程序进行测试。
我仍在寻找方法,如何自动执行这些步骤并自动获得一些主要审查。但现在这是最好的方法,我知道。
希望对你有帮助。
对我来说是这样的:
【讨论】: