swift - 我们是否必须为自定义类型实现写入时复制行为?
问题描述
在 Swift 中,集合是通过写时复制行为隐式实现的;但是,我们不会在自定义类型中免费获得它。
我的主要问题是:
不管如何实现,为我们的自定义类型做一个好主意吗?为什么/为什么不?
而且:
根据这个答案,即使是 Swift 标准库提供的内置类型(但不是集合)也没有实现它,这可能表明我们不必这样做。即便如此,这样做有什么好处吗?
解决方案
您不必这样做,但如果您有资源并且需要这样做,它可能是值得的优化。问自己以下问题:
- 我的数据类型是否经常被复制(即适用性)?
- 在合理的时间内实施 CoW 是否足够容易(即可行性)?
- 我的应用程序是否受益于这些优化(即投资回报)?
可能在大多数应用程序中没有必要,用户也不会注意到差异。在某些特定情况下,它可能适用,但很关键。记住:
过早的性能优化是万恶之源 ~ Donald Knuth
推荐阅读
- php - codeigniter 从同一表格登录或注册
- c - 我的代码中是否有任何未初始化的值?
- javascript - 使用按位运算符时,javascript 和 python 的结果不同
- java - 无法让 DrJava 运行
- loops - VLC:使用多个视频 PID 循环播放 MPEG-TS 文件
- ios - 在表格视图中每 5 个单元格后添加一个广告正在替换内容
- python-3.x - 在 ubuntu 中为 python3.7.0 创建 virtualenv 不起作用
- dreamweaver - $ 未在导入的 js 中定义
- python-3.x - 运行 tmp() 的结果是什么以及为什么?
- c# - 如何 Console.Writeline IEnumerable<(int a, int b, int c)>?