2012-01-06 8 views
1

Windows XPのインストール時にJava JVMに割り当てられるメモリ量を確認します。私はSystem.loadLibrary( "SampleJni")を使用してロードされたdllを介してCライブラリへのJNI呼び出しを行うメインクラスを持つ実行可能なjarを実行しています。一部の通話は機能しており、一部の通話は機能していませ複数の文字列パラメータが渡されるたびに、システムダンプを取得します。私はちょうど1つの文字列、1つのint、2つのints..etc、クラッシュはありません。マシンには99​​ GBのRAMしかないので、JVMが必要メモリを割り当てられないと思っています。Windows XPでのJava JVMメモリ制限の確認

答えて

0

私はJVM(Java 6)をそれより少ないメモリで実行しました。 IIRCでは、Windows上のJVMのデフォルトは64Mbでしたが、変更されている可能性があります。たとえそれがあったとしても、起動するだけで十分です。また、ハードクラッシュではなくOutOfMemoryErrorsが表示されます。

java.lang.Runtimeには、メモリの量を調べるためのさまざまな種類があります。methodsがあります。

考えられる原因は、JNIインターフェイスです。 JNIコードが100%正しくない場合、JVMをクラッシュさせるのは非常に簡単です。

2

jconsoleを使用して、プログラムで使用されているメモリをチェックします。 JconsoleにはJDKが付属しています。このメモリにはJNI Cコードで使用されるメモリは含まれませんが、Javaがどのメモリを使用しているかがわかります。複数のパラメータを使用する場合、JNIマッピングが正しくない可能性があります。

関連する問題