3

現在のプロジェクトをビルドするとき、GWTのコンパイルにはかなりの時間がかかります (現在、全体で約 25 分、gwt コンパイルの 2/3)。それを最適化する方法を調べましたが (例:ここ)、最終的に新しいビルド サーバーを購入することにしました。GWT のコンパイルはかなり CPU を集中的に使用するタスクであるため、コアごとの改善を分析するためにいくつかのテストを行いました。

  • 1 コア = 197 秒
  • 2 コア = 165 秒
  • 3 コア = 149 秒
  • 4 コア = 157 秒 (最後のコアが他のタスクでビジーだった可能性があります)

これらの数値から判断すると、これらの数値は横ばいであるように見えるため、コアを追加しても必ずしもパフォーマンスが向上するとは限りません。

1.) それで、あなたの誰かがそれを確認/反証できるなら、私は興味がありますか? したがって、8 コアまたは 12 コアが必ずしも違いを生むわけではありませんが、個々の CPU 速度 (MHz) は違いますか?

2.) いくつかのベンチマークを見た後、営業担当者は *ntel xeon を購入する傾向があります - AMD の経験はありますか? (私はどちらかというと AMD 派ですが、現時点ではベンチマークを無視するのは難しいようです)

3.) メモリ、IO などに関するその他の提案は大歓迎です

更新: 新しいサーバーを取得したら、更新された数値を投稿します...

4

1 に答える 1

2

AMD FX-8350 (@4.00 Ghz) と Samsung 830 Pro SSD を使用しています。localWorkers=4と同様に設定しました-Xmx2048m。以前は Intel XEON E5-2609 (@2.40 Ghz) を使用していました。これにより、コンパイル時間が最大 440 秒から最大 310 秒に短縮されました。

そのため、単一のコンパイル プロセス (localWorkers=4) の場合に生の CPU 速度が最も重要であることも経験しました。このマシンで複数のコンパイル プロセスが同時に実行されている場合、SSD を使用すると、同時コンパイル プロセスの数に応じて増加する IO 待機時間が改善されます。

現在のハードウェアは、同時に最大 4 つの Maven ビルドをサポートし (それぞれ localWorkers=4 で)、最大 20 GB の RAM を使用します。同時ビルドの数が増えると、ビルド時間が長くなります。ただし、直線的な増加ではないため、1 つの Maven プロセス (Java クラスのコンパイル、テストなど) によってすべてのリソースが使用されていない期間のアイドル時間を削減しようとしています。

ハードウェアの価格を比較した結果、Jenkins ビルドファームでスレーブとして使用するコンシューマ PC を購入することにしました。全体的な価格はサーバー ハードウェアよりもはるかに安く、ハードウェア障害が発生した場合に新しいものと簡単に交換できます。

于 2014-11-11T12:44:05.083 に答える