4

まだアクティブ化されていないウィンドウ (重要な場合) のブラウザー (重要な場合は IE) でアプリケーションを実行しています。JVM コントロール パネルの環境変数を -Xms5m -Xmx5m に設定しました (-Xms16m と -Xmx16m も設定しました)。

アプリケーションを実行し、jconsole を使用してプロセスの pid を監視すると、ヒープ領域不足エラーをスローするのではなく、セット ヒープよりもかなり多くのヒープを使用していることがわかります (特にこのエラーを取得しようとしています)。jconsole によると、15 ~ 20Mb を使用します。コンピューターを再起動し、すべてのブラウザーをオフにしてこのオプションを設定しました。

パラメータが無視される理由を知っている人はいますか。

不足している情報があれば教えてください。

jconsole では、ヒープ メモリの使用量が 20 MB であると明確に示されています。JVM、ライブラリ、スタックなどのロードにより、より多くのメモリが使用される可能性があることは十分承知しています。私が抱えている問題は、指定したヒープ サイズをヒープが超えていることです。

-Xmx16m オプションは、環境変数で設定されている唯一のオプションである場合でも、Java VisualVm にリストされていません (Java VisualVm が更新されていることを確認するために -Xms16m を削除しました。-Xms16m は表示されますが、-Xmx16mしません)。なぜこれが当てはまるのか誰にもわかりますか?

27 から 31 までの Java RE バージョン 6 を試しましたが、それらのすべてに Java VisualVm オプションの Xmx オプションがなく、すべて -Xms16m しかありません。

4

1 に答える 1

3

何度も回答されているように (現時点ではリンクが見つかりません)、実行時パラメーターは、プログラムがヒープから割り当てることができるメモリの量のみを制御します。JRE 自体は、ヒープを管理するためにはるかに多くのメモリを使用するため、-Xmsおよび-Xmxパラメータは、プログラムが使用する実際のメモリの量と (たとえあったとしても) うまく相関しません。

于 2012-08-03T18:45:36.200 に答える