3

最近、アプリケーションで OutOfMemory エラーが発生しています。仮想マシンのメモリが不足していることを事前に検出することはできますか? 言い換えれば、OutOfMemory エラーが実際に発生する前に先制的に対処するには?

4

3 に答える 3

6

Java (Java 5 以降) には、メモリ不足の通知を受け取るために使用できる標準の JMX Bean があります。を参照してくださいjava.lang.management.MemoryMXBean

于 2008-10-25T00:45:15.393 に答える
3

より適切な質問は、「アプリケーションがメモリ不足になるのはなぜですか?」ということをお勧めします。

起動時に JVM で使用できるメモリを増やす必要がある場合があります。メモリ リーク (不要になったときに解放されないオブジェクト) が発生している可能性があります。

アプリケーションに関する詳細情報も役立つ場合があります

  • 24 時間 365 日、継続的に実行されますか?
  • 一度実行して終了しますか?

パフォーマンスの監視/プロファイリング ツールを使用して、メモリの問題の原因を特定するのが最善の策です。

于 2008-10-24T23:26:32.930 に答える
2

ランタイムの freeMemory メソッドを見てください (詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Runtime.htmlを参照してください)。

要するに:する

Runtime.getRuntime().freeMemory()
于 2008-10-25T00:08:47.837 に答える