Swift 5中的排他性实施

每次我们为变量设置值或从变量读取值或将参数传递给函数时,都会访问内存。

发布模式中排他性强制对Swift项目的影响

Swift 5中的排他性实施可能以两种方式影响现有项目:

  1. 如果项目源违反了Swift的排他性规则,并且Debug测试未能执行无效代码,则执行Release二进制文件可能会触发运行时陷阱。 崩溃将产生一条诊断消息,“ 对…的访问重叠,但修改需要排他访问 ”。 源代码级修复通常很简单。
  2. 内存访问检查的开销可能会影响Release二进制文件的性能。 在大多数情况下,影响应该很小。

结论

排他性强制仅捕获单线程错误。 对内存的独占访问可带来更可靠的性能,并显着优化:

  1. 图书馆
  2. 编译器
  3. 用户编写的代码

通过在发布版本中启用完全排他性强制实施,Swift 5有助于消除错误和安全性问题,确保二进制兼容性以及启用将来的优化和语言功能。

参考文献

  1. https://swift.org/blog/swift-5-exclusivity/
  2. https://docs.swift.org/swift-book/LanguageGuide/MemorySafety.html
  3. https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md
  4. https://developer.apple.com/videos/play/wwdc2017/402/

您可以通过Twitter,Linkedin,Facebook和Github与我们联系。

    Interesting Posts