大規模な (> 500,000 LOC) Java プロジェクトのビルド プロセスを管理しています。夜間ビルドの最後にソナー分析ステップを追加しました。しかし、実行には3時間以上かかります...これは深刻な問題ではありません(夜間に発生します)が、速度を上げることができるかどうか知りたいです(必要に応じて勤務時間中に手動で実行できるようにするため) )。
状況を改善するために微調整できるソナー、ハドソン、Maven、またはJDKオプションはありますか?
[INFO] ------------- Analyzing Monolith
[INFO] Selected quality profile : Sonar way, language=java
[INFO] Configure maven plugins...
[INFO] Sensor SquidSensor...
[INFO] Java AST scan...
[INFO] Java AST scan done: 103189 ms
[INFO] Java bytecode scan...
... (snip)
[INFO] Java bytecode scan done: 19159 ms
[INFO] Squid extraction...
[INFO] Package design analysis...
... (over three hour wait here)
[INFO] Package design analysis done: 12000771 ms
[INFO] Squid extraction done: 12277075 ms
[INFO] Sensor SquidSensor done: 12404793 ms
1200 万ミリ秒 = 200 分。それは長い時間!比較すると、ソナー ステップの前のコンパイルおよびテスト ステップにかかる時間は 10 分未満です。私が知る限り、プロセスは CPU バウンドです。ヒープを大きくしても効果はありません。もつれ/重複分析のために、このようにしなければならないのかもしれませんが、わかりません。もちろん、プロジェクトを分割することが最善の選択肢であることはわかっています。しかし、それにはかなりの作業が必要です。それまでの間、いくつかの構成を微調整できれば、それは素晴らしいことです。
何か案は?