从JVM上的this comparison序列化库看,在Scala中创建对象比在Java中创建对象更快。不过,差异在几纳秒之内。
为什么在Scala中创建对象花费的时间更少,或者图表只是反映了不正确的基准测试或其他一些不精确的原因,是否有任何真正的原因?
答案 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方法的代码,
循环,循环......
快速浏览基准代码,
显示了JavaConversions._的使用,在持续的开发流程中,并考虑到上述情况,可能给予Scala 轻微的优势。