2017-02-21 3 views
0

Javaアプリケーションでメモリリークを探していましたが、アプリケーションを起動しても何もしないと、メモリ消費量がjvisualvmまたはjconsole。 jvisualvm/jconsoleを使用して強制的にgcを実行すると、メモリーは解放されます。 その後、現在のスレッドを待っていて、線形メモリ消費を観察できるループを実行するだけで、本当に単純なメインメソッドを試しました。 私はJava 8 b121でテストしました。java jvisualvm/jconsoleはリニアなメモリ消費を持っています

このメモリ消費量は予想されますか?

+0

ループで新しい大きなオブジェクトを作成していますか? – DNAj

答えて

1

はい、期待しています。プロファイラをアプリケーションに接続するときには、メモリが必要です。プロファイラはリソースを使用せずに魔法のように動作することはできませんので、プロファイリングされているプログラムが何もしない場合でも、独特の鋸歯パターンになります。

+0

はい、ただし1MB/5秒ですか? –

+1

それはどれくらいだと思いますか? – Kayaman

+0

なぜ消費量が線形であるべきかわからない、プロファイラ/モニタリング接続ごとに「必要なもの」が一定量必要になると思います... jvmプロセスを監視するときに予想されるオーバーヘッドを記述する技術文書を知っていますかjvisualvm/jconsoleを使用していますか? –

関連する問題