使用Scala进行代码优化

ade*_*rsq 5 optimization scala

Scala的哪些结构可以比Java更有效地使用,以提高执行速度?我不知道这是否可能,但要明确我的疑惑:)

谢谢

Ros*_*son 9

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


Dav*_*ith 6

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

作为一般规则,根据问题和编码技术,Scala基准测试的范围从适度慢于Java到稍快一些.


Jos*_*man 6

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

class MyLinkedList[@specialized T] (args: T*) {
  // whatever it does
}
Run Code Online (Sandbox Code Playgroud)

除此之外,actor使编写并发应用程序变得更容易.2.9中提出的是并行集合,它可以跨集合并行应用高阶函数,从而加速任何你拥有Scala等效Java循环的地方(折叠,foreach等).请参阅此ScalaDays谈论此事的细节.