Optimization 基于Scala的代码优化

Optimization 基于Scala的代码优化,optimization,scala,Optimization,Scala,为了提高执行速度,Scala的哪些结构可以比Java更有效地使用?我不知道这是否可行,但为了澄清我的疑虑:) 感谢scala@specialized注释可以生成一个类的多个版本,并使用特定的基元类型进行微调。您可以用Java编写所有这些,但您可能不想这样做 从2.9开始,并行集合库将成为标准发行版的一部分。这将允许在多个核上极其简单地分布所谓的“令人尴尬的并行”问题。在Java中这样做需要付出相当多的努力 一般来说,Scala基准测试的速度从略慢于Java到稍快不等,这取决于问题和编码技术 要扩

为了提高执行速度,Scala的哪些结构可以比Java更有效地使用?我不知道这是否可行,但为了澄清我的疑虑:)


感谢

scala@specialized注释可以生成一个类的多个版本,并使用特定的基元类型进行微调。您可以用Java编写所有这些,但您可能不想这样做

从2.9开始,并行集合库将成为标准发行版的一部分。这将允许在多个核上极其简单地分布所谓的“令人尴尬的并行”问题。在Java中这样做需要付出相当多的努力


一般来说,Scala基准测试的速度从略慢于Java到稍快不等,这取决于问题和编码技术

要扩展Ross的答案,可以使用@specialized生成集合的特定版本。例如,在Java中,您通常使用或作为原语集合。Scala的@specialized将为您生成这些变体,并自动隐藏它们,如下所示:

class MyLinkedList[@specialized T] (args: T*) {
  // whatever it does
}

除此之外,actor使编写并发应用程序变得更容易。在2.9中出现的是并行集合,它可以在集合之间并行应用高阶函数,从而加快任何具有Java循环的Scala等价物的地方(fold、foreach等)。请参阅,以了解这方面的本质。

我将避免猜测结果性能与等效Java构造之间的差异,但Scala确实存在模热点技巧,这可能会产生可测量的差异


另外,请继续关注即将发布的版本,它将提供有关Scala优化主题的更多信息。

计划在2.9版中使用并行集合。看见