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中一些令人兴奋的更新。有关详细列表,请查看官方发行说明。
相关文章推荐
- JRuby 1.7 Preview 1发布:默认使用Ruby 1.9,通过Invokedynamic改进了性能
- 热门加壳工具VMProtect v3.1发布,新增内存保护,性能改进|附下载
- 【更新】PPT组件Aspose.Slides V17.9发布 | 改进导出HTML性能
- Kodi 'Leia' 18.2 发布下载,bug修复和性能改进
- JRuby 1.7 Preview 1发布:默认使用Ruby 1.9,通过Invokedynamic改进了性能
- jQuery Mobile 1.4.0正式版发布,着重性能改进/CSDN
- 特信发布超导LTE射频前端系统 大幅改进LTE基站性能
- Mono 3.8发布:性能进一步改进,可伸缩性提升
- PPT组件Aspose.Slides V17.9发布 | 改进导出HTML性能
- Meteor 0.5.3发布:改进的性能与实时的反应式更新
- GNOME 3.32 Beta 发布,性能改进
- Meteor 0.5.3发布:改进的性能与实时的反应式更新
- Libvpx 1.8 发布,VP9编码性能改进
- mono 3.10.0 正式发布:性能进一步改进
- 热门加壳工具VMProtect v3.1发布,新增内存保护,性能改进|附下载
- PostgreSQL 12.0 Beta 发布,性能改进
- jQuery Mobile 1.4.0正式版发布,着重性能改进
- D9VK 0.11 发布,性能改进及D3D9修复
- Git 2.21发布,性能改进
- PostgreSQL 12 发布,性能改进与更好的服务器配置