在多CPU机器上编译Scala代码有什么好处吗?
(询问scala 编译,而不是多核处理的scala代码)
发布于 2019-03-28 01:01:04
你可能想要检查一些实验性的编译器标志。Scala 2.12.5引入了-Ybackend-parallelism N,它允许你并行地发出字节码- PR声称8个后端线程的性能提高了4-5%。
https://kubuszok.com/2018/speed-up-things-in-scalac-and-sbt/
发布于 2019-08-21 22:59:27
Scala Hydra是一个商业多核Triplequote编译器,支持Scala代码的并行编译。使用四核计算机时,加速比约为2倍(速度快50%),并且可以在具有更多内核的硬件上很好地扩展。
请注意,Scala -Ybackend-parallelism <n>
标志只允许并行化编译器流水线的最后一个阶段,即字节码发射。与其他编译器阶段(例如,类型检查)相比,字节码发射通常需要很少的时间,因此根据代码的不同,收益很小或可以忽略不计。
(坦率地说,我是Triplequote的创始人。)
发布于 2019-05-28 02:16:37
当我构建一个大型Scala项目时,我的CPU在所有虚拟核心(带有超线程的四核)上达到了最大值。没有什么特别的像九头蛇在发挥作用,只是一堆模块要构建,它们似乎是并行进行的。别忘了GC也需要自己的CPU时间。
一个不错的实验方法是使用大量内核构建一个云实例,克隆并构建您的项目,并对其进行计时。当下一次升级我的PC时,我肯定会这样做,看看有多少内核值得拥有。
https://stackoverflow.com/questions/55381898
复制相似问题