gpt4 book ai didi

scala - Scala方法的渐近行为

转载 作者:行者123 更新时间:2023-12-04 13:43:09 26 4
gpt4 key购买 nike

我可以在某个地方找到对HashSet,TreeSet,List等集合的预期时间空间操作的复杂性吗?

难道人们只是希望从abstract-data-types本身的属性中了解这些吗?

我知道Performance characteristics for Scala collections,但这仅提及一些非常基本的操作。也许这些集合的其余操作完全是基于一个小的基础集构建的,但是然后,似乎只是希望我知道它们已经以这种方式实现了?

最佳答案

其他方法的性能特征确实很难断言。考虑以下:

  • 这些方法都是基于foreachiterator来实现的,并且在层次结构中通常处于很高的级别。 Vectormap是在collection.TraversableLike上实现的。
    为了增加侮辱性,使用哪种方法实现取决于类继承的线性化。这也适用于任何称为辅助方法的方法。在此之前的更改导致无法预料的性能问题之前就已经发生过。
    由于foreachiterator都是O(n),因此任何性能的改善都取决于其他方法的特化,例如sizeslice
  • 对于它们中的许多而言,它们进一步依赖于所提供的构建器的性能特征,该构建器的性能特征取决于调用站点而不是定义站点。

  • 因此结果是,定义和记录该方法的地方没有足够的信息来陈述其性能特征,并且可能不仅取决于继承集合如何实现其他方法,甚至取决于从CanBuildFrom获得的对象Builder的性能特征,该特性在调用站点传递。

    充其量,任何此类文档都将以其他方法进行描述。这并不意味着不值得,但并不容易完成-开源项目上的艰巨任务取决于志愿者,他们通常按自己喜欢的方式工作,而不是所需的工作。

    关于scala - Scala方法的渐近行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820071/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com