您的位置:首页 > 其它

Scala 2.13 发布,改进的编译器性能

2019-06-13 00:00 633 查看

上周,Scala团队宣布发布Scala 2.13。此版本带来了许多改进,包括对标准库集合进行了彻底的修改,编译器的速度提高了5-10%,等等。

大修标准库集合

Scala 2.13的主要亮点是标准库集合,与以前的版本相比,现在在简单性,性能和安全性方面更好。集合中所做的一些重要更改包括:

更简单的方法签名

隐式CanBuildFrom参数是集合库中最强大的抽象之一。但是,它过去常常难以理解方法签名。从此版本开始,转换方法将不再采用隐式的“CanBuildFrom”参数,使得生成的代码更简单,更易于理解。

更简单的类型层次结构

包scala.collection.parallel现在是Scala标准模块的一部分。此模块现在将作为单独的JAR提供,如果它不使用并行集合,您可以从项目中省略它。此外,Traversable和TraversableOnce现已弃用。

新的concrete collections

  • Stream集合现在由LazyList替换,LazyList按顺序仅在需要时评估元素。
  • 引入了一个新的mutable.CollisionProofHashMap集合,该集合使用桶中红黑树的哈希表实现可变映射。即使在哈希冲突的最坏情况下,这也提供了良好的性能。
  • 添加了mutable.ArrayDeque集合,这是一个双端队列,内部使用可调整大小的循环缓冲区。

改进的并发性

在Scala 2.13中,Futures被“内部重新设计”以确保它在更广泛的失败中提供预期的行为。更新的Futures还将为提高性能和支持更强大的应用程序提供基础。

语言的变化

语言更新包括引入基于文字的单例类型,默认情况下部分统一,以及扩展的名称方法参数,以支持隐式和显式参数。

编译器更新

编译器现在可以执行确定性和可重现的编译。这实质上意味着它可以在更多情况下为相同的输入生成相同的输出。此外,对集合和数组的操作现在进行了优化,使编译器与Scala 2.12相比提高了5-10%。

这些是Scala 2.13中一些令人兴奋的更新。有关详细列表,请查看官方发行说明

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Scala