6

現在VisualVMを使用していますが、生成されたグラフを保存できないという問題があります。メモリ使用量と実行時間に関するデータを報告する必要がありますが、実行時間はSystem.nanoTime(). 私はNetBeans プロファイラーも試しましたが、それは私が望むものではありません。なぜなら、それを遅くするような特定の部分を探しているわけではないからです。その最大の問題は、処理時間がかかりすぎることです。また、少なくとも私が知る限り、VisualVM のようにデータを簡単にキャプチャ/転送することはできません。

理想的には、より簡単に情報を取得できるメソッド呼び出しが最善の方法ですが、実際にグラフを保存できる VisualVM のようなものであれば問題ありません。VisualVM でのパフォーマンスも、NetBeans プロファイラーと比較してかなり優れていますが、それは私が NetBeans プロファイラーを使用していなかったからだと思います。

現在Ubuntuを使用していますが、Windows 7でも問題ありません。ただし、これを行うことに特化したプログラムが必要です。そうでないプログラムによって取得される情報には、JVM やその他のものが含まれる可能性が高いため、省略した方がよいでしょう。

どうやら、現在のセッションのスナップショットを保存し、VisualVM でウィンドウを最大化できるので、グラフを大きくしたり、スナップショットを撮ったり、切り取ったりすることができます... しかし、それはハックのようなものです。より良い提案を歓迎します。

4

5 に答える 5

15
Runtime.getRuntime().freeMemory();

Runtime.getRuntime().totalMemory();
于 2010-08-21T08:34:46.107 に答える
3

ランタイムクラスを見てください。freeMemory、maxMemory、および totalMemory があります。それはおそらくあなたの目的に十分近いでしょう。

于 2010-08-21T03:52:32.463 に答える
2

画像をハックするよりも、メモリを測定するための優雅な方法を好むかもしれません。JConsoleは、JMXによってアプリケーションを監視することが知られており、プログラムAPIを提供します。私はそれがあなたが必要としているものだと思います。

参照:JConsoleを使用したアプリケーションの監視

于 2010-08-21T08:20:17.827 に答える
0

HPjmeterコンソールは無料ですで Java プロセスを実行し、それで-Xloggc:<file>を開き<file>ます。セッションを保存できるだけでなく、ランを比較することもできます。コマンドラインに含めることを検討するその他のオプションは次のとおりです。

-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
于 2010-08-21T04:12:42.253 に答える
0

JProfilerを試してください。無料ではありませんが、最初に評価版を試すことができます。

于 2010-08-21T03:27:38.520 に答える