JVM メモリ使用量を確認する方法: 実践的なヒントと共有方法
JVM (Java Virtual Machine) は Java プログラムの実行環境であり、Java バイトコードを次の形式に変換します。マシンコードを管理し、プログラムのメモリ使用量を管理します。 JVM のメモリ使用量を理解することは、プログラムのパフォーマンスを最適化し、メモリ リークの問題を解決するために非常に重要です。この記事では、JVM メモリ使用量を表示するための実践的なヒントと方法をいくつか紹介し、具体的なコード例を示します。
a. jmap: Java ヒープのメモリ スナップショットの生成に使用されます。次のコマンドを使用して、ヒープ内のオブジェクトの分布を表示できます:
jmap -histo <pid>
その中には、< ;pid> は Java プロセスのプロセス ID です。
b. jstat: Java 仮想マシンのステータスと統計情報を監視するために使用されます。次のコマンドを使用してヒープ使用量を確認できます:
jstat -gc <pid>
ここで、
c. jconsole: Java 仮想マシンの実行ステータスとパフォーマンスを監視するためのグラフィカル ユーザー インターフェイスを提供し、ヒープ メモリの使用状況を表示できます。
import javax.management.*; import java.lang.management.*; public class MemoryUsageDemo { public static void main(String[] args) throws Exception { // 获取MBean服务器 MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); // 声明ObjectName,用于获取MemoryMXBean ObjectName name = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME); // 获取MemoryMXBean MemoryMXBean mxBean = ManagementFactory.newPlatformMXBeanProxy(mbs, name, MemoryMXBean.class); // 获取堆内存使用情况 MemoryUsage heapMemoryUsage = mxBean.getHeapMemoryUsage(); System.out.println("Heap Memory Usage:"); System.out.println("Initial: " + heapMemoryUsage.getInit() / (1024 * 1024) + "MB"); System.out.println("Used: " + heapMemoryUsage.getUsed() / (1024 * 1024) + "MB"); System.out.println("Committed: " + heapMemoryUsage.getCommitted() / (1024 * 1024) + "MB"); System.out.println("Max: " + heapMemoryUsage.getMax() / (1024 * 1024) + "MB"); // 获取非堆内存使用情况 MemoryUsage nonHeapMemoryUsage = mxBean.getNonHeapMemoryUsage(); System.out.println("Non-Heap Memory Usage:"); System.out.println("Initial: " + nonHeapMemoryUsage.getInit() / (1024 * 1024) + "MB"); System.out.println("Used: " + nonHeapMemoryUsage.getUsed() / (1024 * 1024) + "MB"); System.out.println("Committed: " + nonHeapMemoryUsage.getCommitted() / (1024 * 1024) + "MB"); System.out.println("Max: " + nonHeapMemoryUsage.getMax() / (1024 * 1024) + "MB"); } }
java -Xloggc:<logFilePath> -XX:+PrintGCDetails <ClassName>
ここで、<logfilepath></logfilepath>
はログ ファイルのパスです。< ;ClassName>
は、実行する必要がある Java クラスの名前です。プログラムを実行すると、ガベージ コレクターのログを含むファイルが生成されます。
概要:
コマンド ライン ツール、JMX、ガベージ コレクター ログを使用すると、JVM のメモリ使用量を簡単に表示できます。これは、プログラムのパフォーマンスを最適化し、メモリ リークの問題を解決するのに非常に役立ちます。この記事の紹介を通じて、これらのツールとテクニックを使用して JVM のメモリ使用量を確認し、Java プログラムのパフォーマンスを向上させる方法をマスターしていただければ幸いです。
以上がJVM メモリ使用量を確認する方法: 実践的なヒントと方法を共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。