繁体   English   中英

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

[英]Why is object creation fast in Scala?

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

有没有什么真正的理由可以在Scala中创建一个对象花费更少的时间,或者图表只是反映了不正确的基准测试或其他一些不精确的情况?

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

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

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

这篇旧帖子的更新:

页面已移动,

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

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

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

Scala比Java更快,直到......

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

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

不可变列表的代码页

循环,循环......

快速浏览基准代码,

Scala的基准代码

显示了JavaConversions._的使用,在持续的开发流程中,并考虑到上述因素,可能给Scala带来了一些优势。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM