我们必须为我们的自定义类型实现写时复制行为吗?

时间:2019-05-06 11:41:10

标签: swift copy-on-write

在Swift中,集合是通过copy on write行为隐式实现的;但是,我们并不是免费提供自定义类型的

我的主要问题是:

无论如何实现,对我们的自定义类型执行操作都是一个好主意吗?为什么/为什么不呢?

此外:

根据this answer,即使从Swift标准库提供的内置类型(但不是集合)也不能实现 ,这可能表明我们没有去做吧。即使这样,这样做有什么好处吗?

1 个答案:

答案 0 :(得分:1)

您没有没有这样做,但是如果您有足够的资源并且需要这样做,那么这可能是一个值得的优化。问自己以下问题:

  • 我的数据类型是否经常复制(即适用性)?
  • 在合理的时间内(即可行性)实施CoW是否足够容易?
  • 我的应用程序是否可以从这些优化中受益(即投资回报)​​?

可能,在大多数应用程序中没有必要,用户也不会注意到它们之间的差异。在某些特定情况下,它可能适用,但很关键。记住:

  

过早的性能优化是万恶之源〜Donald Knuth