【问题标题】:Are Immutable Collections Inherently Less Efficient不可变集合本质上是否效率较低
【发布时间】:2014-05-18 19:47:50
【问题描述】:

不可变对象是不能改变状态的对象。它们可以更容易测试和调试,并且在并发编程中非常有用。但是,与可变集合相比,不可变集合的当前实现性能较差。例如,将关联数组实现为不可变的红黑树平均需要 O(log(n)) 次插入/删除,而哈希表平均需要 O(1) 次插入/删除。

一般来说,不可变集合的效率是否比它们的可变表亲低,或者我们有一天会找到同样快的不可变实现?

【问题讨论】:

标签: functional-programming immutability


【解决方案1】:

Okasaki 表明,通常可以开发“具有等效渐近性能”的不可变数据结构作为它们的命令对应物。然而,不可变结构的常数可能更差。但是,您可能会为性能付出代价,但您确实可以在程序员时间中得到回报;正如您所说,使用和理解不可变集合要容易得多。通过这种方式,这个问题有点类似于反复出现的问题,即为什么我们在 C 如此之快的情况下使用其他语言。因为它更容易,而且我们重视程序员的时间。

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 2010-12-21
    • 2016-11-10
    • 1970-01-01
    • 2013-04-27
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多