Javaのメモリ使用量を監視する方法は?
2023-10-26 04:45:51
質問
Jboss 上で動作する j2ee アプリケーションがあり、そのメモリ使用量を監視したいと考えています。現在、私たちは次のコードを使用しています。
System.gc();
Runtime rt = Runtime.getRuntime();
long usedMB = (rt.totalMemory() - rt.freeMemory()) / 1024 / 1024;
logger.information(this, "memory usage" + usedMB);
このコードは正常に動作します。つまり、現実に対応したメモリカーブを示しています。DBから大きなxmlファイルを作成するとき、曲線は上昇し、抽出が終了した後、曲線は下降します。
あるコンサルタントが、gc()を明示的に呼び出すのは間違っている、gcをいつ実行するかはjvmに決めさせればいい、と言いました。基本的に、彼の主張は以下のものと同じでした。 ここで議論されている . しかし、私はまだ理解していない。
- メモリ使用量を曲線化するにはどうすればよいのでしょうか。
- 明示的な gc() の何が問題なのでしょうか? 私は、明示的な gc() で起こりうる小さなパフォーマンスの問題には関心がなく、それは 1-3% と見積もられます。私が必要とするのは、顧客サイトでの私たちのシステムの分析に役立つメモリとスレッドのモニターです。
どのように解決するのですか?
VM メモリで何が起こっているかを実際に確認したい場合、次のような優れたツールを使用する必要があります。 VisualVM . これはフリーソフトウェアで、何が起こっているのかを見るのに素晴らしい方法です。
何も本当に "wrong" が明示されているわけではありません。
gc()
を呼び出すことについては、特に問題はありません。しかし
gc()
を呼び出したとき、あなたはガベージコレクタが実行されることを提案しているのです。そのコマンドを実行した正確な時間にガベージコレクタが実行されるという保証はありません。
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
Uncaught ReferenceError: は定義されていません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
executeQuery()でデータ操作文が発行できない。解決方法
-
javaの非静的メソッドを静的に参照することができない
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Javaジェネリックを1つの記事で
-
SocketException java.netの4つの例外解決策。
-
Junitのユニットテストエラー
-
htmlとwordの相互変換の実装(画像あり)
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。