代码之家  ›  专栏  ›  技术社区  ›  M. Ryan

在目标C中对特定方法进行基准测试

  •  3
  • M. Ryan  · 技术社区  · 15 年前

    我在一个Objective-C应用程序中有一个关键的方法,我需要尽可能地优化它。我首先需要在这一个方法上采取一些简单的基准,以便在优化时比较我的进度。

    以毫秒为单位跟踪给定方法的执行时间,并将其打印到控制台,最简单的方法是什么?

    4 回复  |  直到 15 年前
        1
  •  3
  •   tc.    15 年前

    cfAbsoluteTimegetcurrent()(约6微秒)或mach/mach-time.h中的mach-absolute-time()(稍快,但需要调用mach-timebase-info()并进行一些转换)。然后您可以打印到stdout或使用nslog;请注意,nslog需要50毫秒?所以你想这么做 之后 测量。我认为,stdout有点快,但不会转到syslog(即xcode管理器/iphone配置实用工具控制台)。

        2
  •  2
  •   DenverCoder9    15 年前

    其他人没有提到的一件事…当你使用仪器或鲨鱼进行性能检查时,在设备上而不是模拟器上运行你的应用程序。在许多情况下,该设备比模拟器慢得多,但在某些硬件加速的情况下,有时实际上比模拟器快得多,因此检查该设备是获得准确图像的唯一方法。

    另外,请注意,nslogs会减慢速度。 太多了 .

        3
  •  1
  •   Jon Shier    15 年前

    有很多方法可以检测代码,但是通过工具和/或shark运行它应该能给您足够的信息,以了解代码的运行速度。但请记住,过早的优化是万恶之源。

        4
  •  -1
  •   Chuck    15 年前