私は72 GBのメモリが稼働しているサーバーを使用しています。これは25Gで並列GCとヒープサイズのJava 7を使用していました。しかし、Java 8に移行した後は、特定の作業がはるかに遅くなります。タスクは基本的にメモリ内の約15GBのファイルを読み込み、DB内の関連するデータを更新します。通常、ジョブを終了するのに約1時間かかりますが、Java 8以降は1.5時間になります。Java 8のGCが明らかにJava 7と比較して遅くなる
私が試した:50ギガバイトへ
- 増加ヒープサイズ=> CMSに平行から
- 変更GCアルゴリズムを助けていない、それは(1.8時間)であっても遅くなり
だから、私は私は見てみることができますかわからない、JavaライブラリはまだJava 7でコンパイルされているタスクを実行するが、私はこの関連するかどうかわからない? Java 7への切り替え後、パフォーマンスが戻ってきました。
アプリケーションに対してプロファイラを実行しましたか?このファイルをロードするために使用しているサードパーティのライブラリは何ですか? –
最新のJava 7?部分文字列が変更された場合の実装! 2つのベンチマークを比較して、パフォーマンスがどこにあるのかを確認してください。 –
長時間かかるものはプロファイリングの恩恵を受けるでしょう。 (1分以上かかるものはIMHOでなければなりません) –