因为我有点意识到UNIT testing
与Xcode XCTest
目标我想知道,在我的项目中,有一个节包含许多animations
和许多服务和database
过程那里如何测量XCTest
该屏幕的性能?我可以使用XCTest在我的应用程序中测试一个部分的性能吗?
3
A
回答
3
有在XCTestCase
:measure和measureMetrics测量性能的方法。
这些方法执行的代码块内十倍和报告个别执行时间,平均时间和偏差。他们还为每个测试设备设置了一条基线,并且如果未来代码的测量部分显着变慢,则报告测试失败。
为单元测试用例文件中的Xcode的模板的底部都有一个性能测试方法,例如:
class CoreDataTestTests: XCTestCase {
func testPerformanceExample() {
self.measure {
// Put the code you want to measure the time of here.
}
}
}
1
这取决于你想要的结果做什么。
如果你想测试你的函数在某种基准测试中的性能,看看在对该代码进行修改后事情是否变得更慢或更快,那么检查nils
建议的内容。
如果你想知道正在处理的时候,那么你最好使用Instruments
得到准确的测量。您可以从Product
菜单运行仪器,采用Profile
或command+i
。
选择time profiler
和在设备上运行的过程(使用红色圆圈按钮)。请注意,它有助于启用一些设置,以便更清楚地查看数据。
使用你的应用程序和用户一样,并实时观察调用树,因为它说明了什么功能都采取最处理器时间。
从这里你可以看到什么,可能需要优化等
注意:您可能需要启用的dSYM在构建设置,以获得该符号,而不是随机的内存偏移量在跟踪。
仪器是知道什么是您的应用程序正在进行一个伟大的工具。你可以检查CPU核心使用,线程使用和线程在等待等
相关问题
- 1. 我可以使用Fit/Fitnesse来测试.NET应用程序吗?
- 2. 我可以使用我的应用程序分发JDK吗?
- 3. 我可以在我的应用程序中使用notepad ++ exe吗?
- 4. 我可以在我的android应用程序中只使用一个BroadcastReceiver吗?
- 5. 我们可以测试DeviceAnyWhere上的任何应用程序吗?
- 6. 我可以做Spotify应用程序的有限测试版吗?
- 7. 我可以切换Rails应用程序的测试框架吗?
- 8. 我可以使用Xamarin.Android单元测试应用程序中的新NUnit API吗?
- 9. 我可以从我的应用程序访问另一个应用程序吗?
- 10. 使用Jmeter可以进行IVR应用程序的性能测试吗?
- 11. 您可以使用虚拟机来测试应用程序的性能吗?
- 12. 我可以在Flash应用程序中使用VS2010 UI编码测试吗?
- 13. 我可以在非nodejs应用程序中使用swagger测试模板吗?
- 14. 我可以在属于世界另一部分的人的iOS设备上测试应用程序吗?
- 15. 我可以使用机架测试进行部署测试吗?
- 16. Facebook API:我可以邀请测试用户加入我的应用程序吗?
- 17. 我可以使用Xamarin测试记录器测试我的应用程序收到的推送通知吗?
- 18. 我可以从另一个部分类中调用一个部分类中定义的函数吗?可能吗?
- 19. 我们可以使用selenium htmlunit-driver **来测试AngularJS应用程序的GUI吗?
- 20. 我可以在python中测试一个内部函数吗?
- 21. 我可以在我的应用程序中使用多个广告api(sdk)吗?
- 22. 我可以在Samsung Galaxy Tab上测试Android智能手机应用程序吗?
- 23. 我可以在应用程序商店更改我的应用程序的“新增内容”部分吗?
- 24. 我可以分享到我的NativeScript应用程序吗?
- 25. 我们可以在使用Apache jMeter进行移动应用程序性能测试期间访问firebase吗?
- 26. 我可以使用另一个应用程序B访问A的应用程序的内部存储器吗?
- 27. 您可以在测试之前估算应用程序的性能吗?
- 28. 我可以在android应用程序中运行android测试用例吗?
- 29. 我可以使用Zookeeper来运行我的应用程序吗?
- 30. 我可以使用Quartz Scheduler启动我的应用程序吗?
所以在这里我需要,所以我需要把这些代码在这一措施的块或只是调用通过XCTest类函数来衡量我的动画+ DB数据抓取速度? – CodeChanger
将代码保留在原来的位置,并从测试方法的度量块内调用该函数。被测试的方法需要公开或内部(如果是内部的:使用'@ testable'导入模块)。通过单击断点排水沟中的小钻石形状来运行测试,或者使用Product-> Test菜单命令运行所有测试。对于动画演奏,您可能还想要检查乐器,还有用于动画性能分析的工具。 – nils
谢谢你的回答让我检查一下。 – CodeChanger