2016-08-12 42 views

回答

3

有在XCTestCasemeasuremeasureMetrics测量性能的方法。

这些方法执行的代码块内十倍和报告个别执行时间,平均时间和偏差。他们还为每个测试设备设置了一条基线,并且如果未来代码的测量部分显着变慢,则报告测试失败。

为单元测试用例文件中的Xcode的模板的底部都有一个性能测试方法,例如:

class CoreDataTestTests: XCTestCase { 

    func testPerformanceExample() { 
     self.measure { 
      // Put the code you want to measure the time of here. 
     } 
    } 
} 
+0

所以在这里我需要,所以我需要把这些代码在这一措施的块或只是调用通过XCTest类函数来衡量我的动画+ DB数据抓取速度? – CodeChanger

+1

将代码保留在原来的位置,并从测试方法的度量块内调用该函数。被测试的方法需要公开或内部(如果是内部的:使用'@ testable'导入模块)。通过单击断点排水沟中的小钻石形状来运行测试,或者使用Product-> Test菜单命令运行所有测试。对于动画演奏,您可能还想要检查乐器,还有用于动画性能分析的工具。 – nils

+0

谢谢你的回答让我检查一下。 – CodeChanger

1

这取决于你想要的结果做什么。

如果你想测试你的函数在某种基准测试中的性能,看看在对该代码进行修改后事情是否变得更慢或更快,那么检查nils建议的内容。

如果你想知道正在处理的时候,那么你最好使用Instruments得到准确的测量。您可以从Product菜单运行仪器,采用Profilecommand+i

选择time profiler和在设备上运行的过程(使用红色圆圈按钮)。请注意,它有助于启用一些设置,以便更清楚地查看数据。

使用你的应用程序和用户一样,并实时观察调用树,因为它说明了什么功能都采取最处理器时间。

从这里你可以看到什么,可能需要优化等

注意:您可能需要启用的dSYM在构建设置,以获得该符号,而不是随机的内存偏移量在跟踪。

enter image description here

仪器是知道什么是您的应用程序正在进行一个伟大的工具。你可以检查CPU核心使用,线程使用和线程在等待等

相关问题