与普通Java相关的scala编译代码的性能怎么样?
那么递归的开销而不是“/ while循环的标准”呢?性能较差?
如果是,那么失去业绩的折衷是什么?
修改
答案给了我安德烈亚斯诺伊曼几乎是我想知道的。刚丢失:
什么时候最好使用Scala而不是Java。
缩小问题: 当Scala更倾向于使用一致的项目而不是Java,或者两者兼而有之?
我不知道,只是猜测,也许是为了代码可维护性?
答案 0 :(得分:3)
对您的问题的简短回答:
取决于。
答案更长:
在大多数情况下,您最终会获得与Java相同的快速代码。它在很大程度上取决于您在Java中的编码体验,就像在Scala中一样。 在很多情况下,编译器将能够在引擎盖下的while循环中转换递归实现 - >有关此事的信息,请参阅@tailrec Annotation。
一个好的/科学的答案:
以下是Google Research完成的问题的一篇好文章:C ++ / Java / Go / Scala中的循环识别。看看他们的发现。 摘要 - > http://research.google.com/pubs/pub37122.html PDF - > http://static.googleusercontent.com/media/research.google.com/de//pubs/archive/37122.pdf