我有一个非常繁重的方法,它使用许多变量,需要大量的测试。由于不重要的原因,我在几台不同的机器(Mac Pro,MBP等)上进行开发,因此我知道模拟器将在每台机器上以不同的速度运行。
有没有一种简单的方法来评估这种方法的相对速度,无论我使用什么硬件,它都是一致的?而不使用仪器?
使用CACurrentMediaTime()之类的东西会很棒,但这显然会受到硬件速度的影响。
它甚至不需要给我一个确切的时间,我只需要知道一组变量是否是相对于B组变量的速度。
我确定这是一个简单的答案,我只是错过了它。
感谢。
答案 0 :(得分:1)
一种解决方案是定义一些处理器密集型参考函数以将其与(例如,分解中等大小的素数或取大量平方根)进行比较。然后,每次测试方法时,都要使用CACurrentMediaTime()计时,然后运行并计算参考函数。然后,您可以使用方法的运行时与参考方法的运行时间的比率作为度量标准。
假设您的方法受CPU限制(或者至少,不同机器之间的方法运行时差异主要取决于CPU),这应该可以为您提供所需的内容。