ios - Xcode Instruments 跟踪比较

标签 ios xcode comparison instruments

有什么方法可以比较用 Instruments 保存的跟踪文件。我如何比较应用程序的连续实现构建的任何方式。

假设我发布 iPhone 应用程序版本 1.0,然后在 2 个月内发布 1.1。什么是最好的必须在内存和时间方面进行分析比较?

最佳答案

您可以保存跟踪文件。但是为了在未来某个日期解释这些结果是合理的,在您的跟踪中插入“标志”以标记重要事件是很有用的,这样您就可以知道应用程序在跟踪中的显着点上做了什么。

过去,我建议包含以编程方式插入的标志,以便您将来有一些比较基础,但这在 iOS7 中被打破了。但是如果你在 iOS 7.0 之前的模拟器上运行它,你可以:

  • 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 解析 header ,但您不想将其保留在您的 iOS 项目中,否则您将出现链接错误)。

您可能希望保留一份相应文件的副本,以便您可以在将来的某个日期重新符号化跟踪文件。

显然,如果在 iOS7 中进行性能分析,您可以自己手动添加标记,但它不如以编程方式标记优雅或严格。

关于ios - Xcode Instruments 跟踪比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269630/

相关文章:

ios - 适用于所有 Xcode 版本的 Swift 框架

xcode - 如何在 Xcode 8 中关闭线条突出显示或编辑其颜色?

lua - Lua 为什么要这样进行比较呢?

algorithm - 如何检测某个范围是否(部分)位于另一个范围内?

java - JAVA 中的对象比较...第 2 部分

ios - swift 将数据从一个选项卡 Controller 传递到另一个选项卡 Controller

ios - 未调用 cellForRowAtIndexPath 但调用了 numberOfRowsInSection

ios - 阴影不在 UIButtons 上绘制

html - Titanium Empty 应用程序立即退出模拟器

ios - 在 IOS7 中弃用了 GraphicsServices 中的 GSCopyPurpleNamedPort(appId),替代方法是什么?