Java compiler 並行編譯思考

1、問題

最近基於JSR269作的代碼插樁有一個編譯問題須要定位,並且問題不是每次都能復現,須要多編譯幾回才行,出問題的項目是Maven構建的,相對較大,每次構建耗時就比較長。因此我就想,是否有什麼配置項能加快編譯的速度,好比:並行編譯?最近在看Javac源碼,也的確沒有發現有任何多線程處理源碼編譯的痕跡。java

2、過程

通過一番Google發現不僅我有此疑問,在文章最後放上了檢索的一些連接。有一個典型的聲音:apache

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...當前的問題是:項目編譯時間比較長。多線程

3、結果

通過一番搜索,肯定了兩件事:maven

  1. 肯定了javac自己是不支持並行的,還翻到了一篇論文就是研究並行編譯的
  2. Maven 3.x以後能夠並行構建了,能夠提升構建速度,模塊依賴Maven會自動保證,不須要擔憂
    命令能夠這麼寫:
mvn -T 1C clean install

詳細參考,試了一下,執行速度提高了一倍多。
IDEA裏也是能夠配置的:
IDEA配置ui

4、參考連接

  1. What javac option(s) tell it to use all available cores for compiling?
  2. 一篇聯合論文
  3. Maven: how to do parallel builds?
相關文章
相關標籤/搜索