用 Date() 测量执行时间

Posted

技术标签:

【中文标题】用 Date() 测量执行时间【英文标题】:Measuring execution time with Date() 【发布时间】:2020-08-04 09:51:24 【问题描述】:

我想比较一个函数的不同实现:

let start1 = Date()
_ = funcImplA()   
let end1 = Date()

let start2 = Date()
_ = funcImplB()
let end2 = Date()

let time1 = end1.timeIntervalSince(start1)
let time2 = end2.timeIntervalSince(start2)
print("ImplA = \(time1 ), ImplB = \(time2)")

我得到的结果是第一个度量总是比第二个慢 (time1 > time2)。这意味着如果我在通话之间切换,先测量funcImplB(),然后再测量funcImplA,我仍然会得到time1 > time2。 可能是什么原因?

【问题讨论】:

您是否在打开优化的真实编译版本中进行测试? Swift Playground 不适合测量执行时间,因为它们实际上并没有编译代码,而且值的实时显示也会显着影响执行时间。 你可以在this question找到一些衡量性能的例子 【参考方案1】:

您可以在单元测试中对此进行测试并使用measure block

也请考虑在真实设备上运行,而不是模拟器

【讨论】:

以上是关于用 Date() 测量执行时间的主要内容,如果未能解决你的问题,请参考以下文章

[linux time命令学习篇] time 统计命令执行的时间

在 C++ OpenMP 代码中测量执行时间

在 C++ OpenMP 代码中测量执行时间

有没有办法从属性测量 C# 函数执行时间?

如何测量 ARM Cortex-A8 处理器中的程序执行时间?

如何测量用 PHP 编写的代码的速度? [关闭]