1

たとえば、javacpl.exe を使用して JVM を構成し、最大ヒープ サイズを大きくした Windows クライアントがあるとします-Xmx1024m。(Web ブラウザで) 実行しているアプリケーションが、メモリ サイズが を超えていないというエラーをvalue Y表示している場合、この値はアプリケーションにハードコードされている値であり、このチェックが機能し、正しいことがわかっていると仮定します。問題のアプリがこの変更されたヒープサイズ設定を「取得」していない理由を確認するための手順を実行できますか?

編集これの考えられる原因の 1 つは、32 ビット JRE を 2 GB (またはその程度) を超えるメモリに設定した場合です。これは、それを処理できないためです。1024 は伝播するはずであり、これを解決する私の方法は、システムで見つけたさまざまな JRE を、どれが使用されているかがわかるまで無効にすることだけでした。

4

1 に答える 1

0

起動時に VM に渡されるJVM引数を確認する必要があります。

  • 最も簡単な方法は、 を実行jconsoleすることです。実行中の VM にアタッチされ、すべての起動パラメータ、現在のヒープ サイズなどを確認できます。jconsole は VM ディストリビューションに付属しており、すでに JVM_HOME/bin/ ディレクトリにあります。インストールされています。

  • もう 1 つのオプションは、JVM ロギングを有効 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.logにすることです。jvm.log には、すべての起動スクリプトが再び表示されます。

また、 と の両方-Xmx-Xms同じ値に設定してみてください。そうすれば、初期のヒープ サイズが目的のサイズになります。

于 2013-07-07T02:44:52.910 に答える