1

VmWare インスタンスでアプリを実行しているときに、Java のデフォルトのガベージ コレクターで問題が発生した人はいますか?

フル ガベージ コレクションが期待したほど頻繁に実行されないという問題が発生しており、VmWare 変数がそれと関係があるかどうか知りたいです。

4

3 に答える 3

1

VmWare インスタンスでの Java のガベージ コレクションに関する明白な問題に気付いていません。Netbeans 6 プロファイラーやYourKitなどの優れたプロファイラーを使用してアプリケーションのプロファイルを作成し、メモリ リークがないことを確認することをお勧めします。発生していたリークを排除した後は、ガベージ コレクションについてそれほど心配する必要はありません。一部のガベージ コレクターは、CPU 使用率に依存していると思います。いずれにせよ、Java 6 のガベージ コレクションの調整については、こちらを参照してください。古い VM バージョンについても同様のドキュメントがあります。

于 2008-09-22T17:04:58.250 に答える
1

一般に、ガベージ コレクターは、本当に必要な場合にのみフル GC を実行します。理由は、時間がかかるからです。時間がかからない、より小さな GC を実行しようとします。ほとんどの場合、これは良い戦略のようです。

微調整したい場合は、VM に追加できる追加の GC フラグがいくつかあります。これを参照してください さらに、クライアント vm ではなくサーバー vm を実行していることを確認したいでしょう。

本当の問題は、あなたが達成しようとしていることだと思います。メモリが不足している場合、GC が原因ではない可能性があります。おそらくメモリリークが原因であり、メモリ管理された環境で作成できます。それらはほんの少し異なります。

于 2008-09-22T16:57:41.840 に答える
0

これは自分で見たことはありませんが、実行している VMware のバージョンとプロセッサの種類によっては、仮想マシンのクロックがリアルタイムよりも大幅に速く (または遅く) 実行される場合があり、これはもちろんインターバル ガベージに影響を与える可能性があります。コレクションはで実行されます。

タイムキーピングの問題の概要と、VM の時間を可能な限りリアルタイムに近づける方法の提案については、VMware のホワイトペーパー「VMware Virtual Machinesのタイムキーピング」を参照してください。

于 2008-09-22T16:57:43.587 に答える