一、问题

最近基于JSR269做的代码插桩有一个编译问题需要定位,而且问题不是每次都能复现,需要多编译几次才行,出问题的项目是Maven构建的,相对较大,每次构建耗时就比较长。所以我就想,是否有什么配置项能加快编译的速度,比如:并行编译?最近在看Javac源码,也的确没有发现有任何多线程处理源码编译的痕迹。

二、过程

经过一番Google发现不只我有此疑问,在文章最后放上了检索的一些链接。有一个典型的声音:

Javac is a very fast compiler. If you have a project that’s so large as to bottleneck on compilation time, I’m impressed.

意思就是javac编译速度很快,很难有项目的源码能大到成为编译期的瓶颈。But...当前的问题是:项目编译时间比较长。

三、结果

经过一番搜索,确定了两件事:

  1. 确定了javac本身是不支持并行的,还翻到了一篇论文就是研究并行编译的
  2. Maven 3.x之后可以并行构建了,可以提高构建速度,模块依赖Maven会自动保证,不需要担心
    命令可以这么写:
mvn -T 1C clean install

详细参考,试了一下,执行速度提升了一倍多。
IDEA里也是可以配置的:
Java compiler 并行编译思考

四、参考链接

  1. What javac option(s) tell it to use all available cores for compiling?
  2. 一篇联合论文
  3. Maven: how to do parallel builds?

相关文章:

  • 2021-09-20
  • 2021-10-19
  • 2022-03-10
  • 2021-07-11
  • 2021-11-27
  • 2022-02-10
  • 2021-11-03
猜你喜欢
  • 2021-07-23
  • 2022-02-16
  • 2022-12-23
  • 2022-02-05
  • 2021-05-31
  • 2021-12-04
  • 2022-02-23
相关资源
相似解决方案