IntelliJ Scala插件2020.3现已发布!

intellij idea大多数发行版都侧重于编辑器功能,但该节的重点是并行编译和编译图表。我们还提供了一些编辑器工具。

IntelliJ IDEA 2020.3提供了许多实用的功能,例如调试时的交互式提示,Git暂存支持,对Java 15记录和密封类的扩展支持等等。它简化了端点,框架和事件探查器的日常工作。通过基于机器学习技术的更好的代码完成,更直观和有用的新的“Welcome”屏幕以及更好的拼写和语法检查,整个UX得到了改进。简而言之,一切都更好!

下载IntelliJ IDEA 2020.3

大多数发行版都侧重于编辑器功能,但该节的重点是并行编译和编译图表。我们还提供了一些编辑器工具。

1.并行编译
2.编译图表
3.增强的软件包前缀
4. MUnit支持
5. Scala 3改进
6.还有更多!

并行编译

根据官方的Scala开发人员调查,在很大程度上,long compilation times Scala程序员日常工作流程中的主要难题。

尽管加速Scala编译器是一个有价值的目标,并且Scala编译速度在不断提高,但是最直接的解决方案是采用并行编译。此解决方案也是最有效的。通过使用N内核而不是内核,编译时间最多可以减少N几倍,而不是百分之几。

具有多核处理器,大量内存和固态驱动器的现代计算机无疑可以完成任务。因此,Scala编译服务器现在可以并行编译独立的模块:

IntelliJ Scala插件2020.3现已发布!

我们已经调整了默认VM选项,以默认情况下最多支持4个编译线程,这可以显着加快编译速度。如果您的计算机具有许多CPU内核和大量RAM,请随时调整“Settings | Build | Compiler | Scala | Compile Server(可通过“编译服务器”图标上的“Configure”访问)以进一步缩短编译时间。

编译图

为了提高并行编译的效率,您可能需要优化项目模块的结构和Compile Server的VM选项。但是,如果没有明确的指导,此任务将变成猜测游戏。虽然您可以查看模块依赖关系图,但是很难说出如何根据编译线程数来调度这些模块。

此外,Scala文件的编译时间可以相差很大,因此很难仅根据源文件的数量就知道编译一个特定模块需要花费多长时间。最大VM堆大小也是如此:是太小还是太大译线程数如何影响RAM消耗/p>

为了帮助您完成此任务,我们在“Build”工具窗口中将“编译图表”添加为“Chart 节点:

IntelliJ Scala插件2020.3现已发布!

现在,您可以一目了然地判断何时有优化的潜力。这是典型的情况:

  • 一个模块起到一个瓶颈的作用:如果很多模块都依赖于一个需要长时间编译的模块,可以考虑将该模块拆分成几个部分。如果你的项目只由一个或数量有限的大模块组成,这种方法特别适合。
    除了使你的项目具有高度的可并行性之外,细粒度的模块还可以加快单线程编译速度(通过使编译器更容易解析引用),减少消耗的最大内存量(因为编译器不必一次性加载所有的源码),清理IDE的自动完成(因为在范围内没有超级flous类),以及解开项目类之间的依赖关系(参见最小功率规则)。

  • 编译是线程绑定的:如果看到大多数时间所有线程都被占用,请尝试逐渐增加最大线程数。但是请记住实际的CPU核心/线程数-为OS和IDE保留一两个线程,以保持UI响应能力。

  • 线程数过多:如果在编译过程中只需要最大线程数一次或两次,并且额外编译的模块相对较小,则增益仅适中,但您必须分配大部分时间未使用的额外RAM。在这种情况下,请考虑减少最大线程数。

  • 堆大小不足:如果堆大小保持接近最大值,则VM可能会进行过多的垃圾回收。即使没有OutOfMemoryError,编译性能也可能不会达到最佳。考虑增加最大堆大小。

  • 堆大小过多:您的操作系统可以更好地利用该内存,例如文件系统缓存,这实际上可以提高编译速度。

借助更快的编译速度和动态图表来吸引您的注意力,“编译”漫画现在已成为过去。

增强的软件包前缀

现在,Scala插件可以将IntelliJ IDEA的程序包前缀与Scala的链接程序包子句相对导入结合在一起。尽管这些功能中的每一个都比较模糊,但是并没有以指数方式增加模糊度,而是提供了一个直观且内部一致的系统:

IntelliJ Scala插件2020.3现已发布!

您不再需要忍受空目录链或一遍又一遍地重复相同的程序包前缀。现在,您可以保持目录和软件包的整洁。

MUnit支持

Scala插件已经支持JUnit,ScalaTest,uTest和Specs2。现在是时候我们将另一个条目添加到此列表了:

IntelliJ Scala插件2020.3现已发布!

现在具有对MUnit的支持,具有所有通常的优点:

IntelliJ Scala插件2020.3现已发布!

Scala 3改进

IntelliJ Scala插件已经为即将到来的Scala 3提供了相当长的支持,并且我们正在努力跟上所有新更新。最值得注意的是,Scala插件现在可以理解主要方法的新语法:

IntelliJ Scala插件2020.3现已发布!

工程Hello Worlds从未如此简单!

由于Scala 3仍在开发中,并且API尚未稳定,因此我们实际上只能支持一个版本的Scala3。我们建议每晚使用Scala插件进行构建,以尽快获得“最新,最出色”的功能。在Settings | Languages | Scala | Updates | Channel选择Nightly builds(您可以随时以相同的方式还原到更稳定的版本)。

更多!

此版本中还有许多其他功能,包括性能改进和错误修复。

IntelliJ IDEA现已更新至2020.3,因此可以查看IDEA的“新增功能”页面,以了解与Scala也相关的平台功能。一定要签出Code With Me,这是一项用于协作开发和配对编程的服务,可让您与他人共享当前在IDE中打开的项目,并实时进行协作。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月6日
下一篇 2020年11月6日

相关推荐

发表回复

登录后才能评论