Java VisualVM では、アプリケーションデータのスナップショットを取り、そのスナップショットをローカルシステムに保存できます。スナップショットを使ってアプリケーションに関するデータを取得すると、保存されたスナップショットをいつでも開いて表示できるようになるので、便利です。スナップショットを表示する際にターゲットアプリケーションが実行されている必要はありません。また、スナップショットをほかのユーザーに送信し、そのユーザーがスナップショットを表示することもできます。
スナップショットは基本的に、ある特定の時間に取得されたデータのアーカイブであり、後日 Java VisualVM で開くことができます。ユーザーが取得および保存できるスナップショットの種類は、次のとおりです。
プロファイラスナップショットでは、その時点におけるプロファイルデータが取得されます。プロファイラスナップショットの取得は、プロファイルセッション中であればいつでも行えます。プロファイラスナップショットを取ると、そのスナップショットを表すノードが「Applications」ウィンドウのアプリケーションノードの下に表示されるほか、一時的なスナップショットファイルがローカルシステムの Java VisualVM userdir 内に書き込まれます。
Java VisualVM で取得可能なプロファイラスナップショットの種類は次のとおりです
メモリープロファイリングスナップショットのスクリーンショット
CPU プロファイリングスナップショットのスクリーンショット
プロファイラスナップショットをあとで表示する必要がある場合には、スナップショットを明示的にローカルシステムに保存する必要がありますが、その保存方法には、1 つのプロファイラスナップショットとして保存する方法と、アプリケーションスナップショット内にアーカイブする方法があります。
プロファイラスナップショットの取得はプロファイルセッション中に行えます。メモリースナップショットまたは CPU スナップショットを取ると、そのスナップショットが、メインウィンドウのアプリケーションのタブ内で開かれます。
スナップショットを取るには次のいずれかを行います。
スナップショットのツールバーでは次のことが行えます。
アプリケーションスナップショットでは、スナップショットを取った時点における、アプリケーションの収集されたヒープダンプ、スレッドダンプ、およびプロファイラスナップショットが取得されます。アプリケーションスナップショットでは、Java Virtual Machine (JVM) に関する一般情報も取得されます。
アプリケーションスナップショットを取るには、「Applications」ウィンドウでアプリケーションノードを右クリックし、ポップアップメニューから「Application Snapshot」を選択します。アプリケーションスナップショットは Java VisualVM セッション間で永続されます。
アプリケーションスナップショットを取ると、次のことが起こります。
アプリケーションスナップショットは、「Applications」ウィンドウの「Snapshots」ノードの下に一覧表示されます。アプリケーションスナップショットノードを展開すれば、そのスナップショットの内容を表示できます。
アプリケーションスナップショットの取得後にその内容を表示および変更するには、「Applications」ウィンドウ内でそのアプリケーションスナップショットのノードを展開します。アプリケーションスナップショットノードを右クリックするかアプリケーションスナップショットノードの下に表示された任意の項目を右クリックして開かれるポップアップメニューでは、その項目のオープン、保存、名前変更、および削除を選択できます。その後、そのアプリケーションスナップショットを単一のアプリケーションスナップショットアーカイブ (.apps) としてローカルシステムに保存できます。
アプリケーションスナップショットの「Overview」タブでは、JVM ソフトウェアに関するデータが取得されます。