为什么Javac不在多核上运行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Javac不在多核上运行?相关的知识,希望对你有一定的参考价值。

它看起来很普通,但是javac不能同时编译的技术原因是什么?我读到eclipse编译器是并行的,为什么不用javac呢?

答案

编译器实际并行工作是非常不寻常的,我找不到任何说明Eclipse的Java编译器是例外的资源。

eclipse有能力做的是同时并行编译多个文件。这与Eclipse自带的Java编译器无关。如果它确实使用了javac,它可以并行运行多个javac实例 - 这没有问题。事实上,当您运行具有多个线程的构建时,正是构建工具(如maven)所做的事情。

另一答案

我认为它使javac程序变得简单,如果它是内部并行的,那么必须处理许多竞争条件,这使事情变得复杂。要使用多核,你可以创建多个javac进程来达到同样的目标,似乎makefile和gcc就是这样工作的。

“保持简单和愚蠢”

以上是关于为什么Javac不在多核上运行?的主要内容,如果未能解决你的问题,请参考以下文章

为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误

Android Studio Map setOnMarkerClickListener 不在片段上工作

为啥我的 JAX + Haiku 代码不在 GPU 上运行?

在多核CPU下,同一进程下的多个线程可以并行运行吗

java为啥每次都是找不到文件。找不到文件?

在 Java 中查找多核代码的执行时间