主要观点:
- 介绍了
ContinuousClock
和SuspendingClock
等,它们在大多数情况下开销很小,但频繁使用时效率低下,会成为瓶颈。 - 以
throttle
为例说明其性能不佳,自己编写的节流系统更优。 - Swift 的
Clock
协议设计存在显著开销,通过对比各种时间跟踪方法的基准测试,显示其效率低下,mach_absolute_time
最快但需申请特殊权限,Date
性能出人意料地好。 - 回应了 HackerNews 上关于
mach_absolute_time
的疑问,解释了其在时间跟踪中的作用和苹果的相关政策,同时也对示例代码中的一些质疑进行了回应和解释。 - 提到苹果 Swift 标准库代码中的一些更改,有望消除
ContinuousClock
和SuspendingClock
的开销。
关键信息:
ContinuousClock
和SuspendingClock
开销小但频繁使用效率低。throttle
性能差,自己编写节流系统。mach_absolute_time
最快但需申请权限。Date
性能好。- 苹果政策及相关解释。
- 对示例代码质疑的回应。
- 苹果 Swift 标准库代码的更改。
重要细节:
- 代码示例展示了使用
ContinuousClock
进行节流的过程及存在的问题。 - 基准测试结果显示各种时间跟踪方法的性能差异。
- 解释了
Date
性能好的原因及与编译器的关系。 - 对其他时钟 API 的提及及未纳入基准测试的原因。
- 关于
Clock
协议设计导致开销的分析。 - 苹果 Swift 标准库代码更改的相关信息及对消除开销的期望。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。