Swift 的原生时钟效率非常低 – Wade Tregaskis

主要观点:

  • 介绍了ContinuousClockSuspendingClock等,它们在大多数情况下开销很小,但频繁使用时效率低下,会成为瓶颈。
  • throttle为例说明其性能不佳,自己编写的节流系统更优。
  • Swift 的Clock协议设计存在显著开销,通过对比各种时间跟踪方法的基准测试,显示其效率低下,mach_absolute_time最快但需申请特殊权限,Date性能出人意料地好。
  • 回应了 HackerNews 上关于mach_absolute_time的疑问,解释了其在时间跟踪中的作用和苹果的相关政策,同时也对示例代码中的一些质疑进行了回应和解释。
  • 提到苹果 Swift 标准库代码中的一些更改,有望消除ContinuousClockSuspendingClock的开销。

关键信息:

  • ContinuousClockSuspendingClock开销小但频繁使用效率低。
  • throttle性能差,自己编写节流系统。
  • mach_absolute_time最快但需申请权限。
  • Date性能好。
  • 苹果政策及相关解释。
  • 对示例代码质疑的回应。
  • 苹果 Swift 标准库代码的更改。

重要细节:

  • 代码示例展示了使用ContinuousClock进行节流的过程及存在的问题。
  • 基准测试结果显示各种时间跟踪方法的性能差异。
  • 解释了Date性能好的原因及与编译器的关系。
  • 对其他时钟 API 的提及及未纳入基准测试的原因。
  • 关于Clock协议设计导致开销的分析。
  • 苹果 Swift 标准库代码更改的相关信息及对消除开销的期望。
阅读 11
0 条评论