为什么在Scala中快速创建对象?

时间:2011-03-08 17:18:32

标签: scala

从JVM上的this comparison序列化库看,在Scala中创建对象比在Java中创建对象更快。不过,差异在几纳秒之内。

为什么在Scala中创建对象花费的时间更少,或者图表只是反映了不正确的基准测试或其他一些不精确的原因,是否有任何真正的原因?

3 个答案:

答案 0 :(得分:6)

对象创建时间的40纳秒差异是英特尔酷睿i7 920中的背景噪声。

假设这些数字是多次运行的平均数,则40纳秒仅为0.04微秒。假设在Windows 7 64位上高性能时钟运行正常,你可能正在考虑窗口中的打嗝,月相,统计错误,测量程序错误,内存分配实现速度等等。< / p>

答案 1 :(得分:1)

Scala会自动创建更多小对象。这使得对象创建速度平均,但序列化大小更大。

答案 2 :(得分:0)

更新这篇旧帖子:

页面已移动,

https://github.com/eishay/jvm-serializers/wiki

现在没有列出Scala。搜索小组没有解释原因?

旧帖子,但争论仍在继续,

Scala is faster than Java until...

认为 Rex Kerr帖子指的是Scala集合类单独保存其元素的方式。我没有基准,但这不是一点点(难以证明和无利可图)更快,我已经反复更快地进行基准测试。据推测,Scala编码员知道这一点。

在此处查看Scala集合ImmutableList中的readObject / writeObject方法的代码,

Code page for Immutable List

循环,循环......

快速浏览基准代码,

benchmark code for Scala

显示了JavaConversions._的使用,在持续的开发流程中,并考虑到上述情况,可能给予Scala 轻微的优势。