Xcode Instruments跟踪比较

时间:2013-11-28 15:19:16

标签: ios xcode comparison instruments

有没有办法比较用Instruments保存的跟踪文件。如何对应用程序的连续实现构建进行任何比较。

以免我说我在2个月内发布iPhone应用程序版本1.0。什么是最好的内存和时间的分析比较?

2 个答案:

答案 0 :(得分:3)

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

过去,我建议以编程方式插入标记,以便将来有一些比较基础,但这在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中进行性能分析,您可以自己手动添加标记,但它不像以编程方式标记那样优雅或严谨。

答案 1 :(得分:2)

我认为最好的方法是:

  1. 将两个版本的App安装到设备
  2. 打开Instruments
  3. 点击“图书馆”按钮,然后添加您要跟踪的内容。对我来说看起来像是:

    • 活动监视器
    • 分配
    • Time Profiler
    • 网络活动
    • 内存监视器
  4. 选择iOS设备作为目标。然后你的应用程序进行测试。

  5. 在两个版本的应用程序上连续运行相同的方案。
  6. 现在您可以看到2个类似跑步的比较。
  7. 只需点击任意一行即可查看该行的详细信息。
  8. 我仍然在寻找方法,如何自动执行这些步骤并自动进行主要审核。但现在这是最好的方式,我知道。

    希望它有所帮助。

    对我而言,它看起来像是:

    xcode-instruments-trace-comparison