Hasty Briefsbeta

双语

Overheads (2023)

2 months ago
  • #systems programming
  • #hidden costs
  • #performance
  • 高级语言存在隐藏的性能开销,例如垃圾回收器暂停,这在系统编程中是不可接受的
  • Swift采用写时复制(CoW)机制避免昂贵的数据拷贝,但在修改数据时仍可能产生隐藏成本
  • Swift中的Unicode分段处理使得字符串索引操作复杂度为O(n)而非O(1),这不适合系统编程
  • C和C++同样存在栈溢出和隐式内存拷贝等隐藏成本,但这些通常被认为可以忽略不计
  • 判断不可接受隐藏成本的关键因素是时间复杂度——任何超过O(1)的操作都应在源代码中显式体现
  • 系统编程语言应避免时间复杂度超过O(1的开销,以保持性能可预测性