Java >> Java チュートリアル >  >> JVM
JVM
  • JVM にロードされたすべてのクラスを一覧表示する

    1.概要 このチュートリアルでは、JVM にロードされたすべてのクラスを一覧表示するためのさまざまな手法を学習します。たとえば、JVM のヒープ ダンプをロードしたり、実行中のアプリケーションをさまざまなツールに接続して、そのツールにロードされたすべてのクラスを一覧表示したりできます。また、これをプログラムで実行するためのさまざまなライブラリもあります。 プログラム以外のアプローチとプログラムによるアプローチの両方を検討します。 2.非プログラマティック アプローチ 2.1. VM 引数の使用 読み込まれたすべてのクラスを一覧表示する最も簡単な方法は、コンソール出力またはファイルに記録す

  • 実行中のすべての JVM スレッドを取得する

    1.概要 この短いチュートリアルでは、現在の JVM で実行中のすべてのスレッドを取得する方法を学びます。 、私たちのクラスによって開始されていないスレッドを含みます. 2. スレッドを使用する クラス getAllStackTrace() スレッドのメソッド クラスは、実行中のすべてのスレッドのスタック トレースを提供します。 地図を返します そのキーはスレッドです オブジェクトなので、キー セットを取得し、その要素をループしてスレッドに関する情報を取得できます。 printf() を使用しましょう 出力を読みやすくする方法: Set<Thread> threads = T

  • JVM インスタンスで使用される GC アルゴリズムを見つける

    1.概要 コンパイラやランタイムなどの一般的な開発ユーティリティに加えて、各 JDK リリースには無数の他のツールが付属しています。これらのツールの一部は、実行中のアプリケーションに関する貴重な洞察を得るのに役立ちます。 この記事では、そのようなツールを使用して、特定の JVM インスタンスで使用される GC アルゴリズムについて詳しく調べる方法を見ていきます。 2.サンプル アプリケーション この記事では、非常に単純なアプリケーションを使用します: public class App { public static void main(String[] args) throws

  • JVM での階層型コンパイル

    1.概要 JVM は実行時にバイトコードを解釈して実行します。さらに、ジャストインタイム (JIT) コンパイルを利用してパフォーマンスを向上させます。 以前のバージョンの Java では、Hotspot JVM で使用できる 2 種類の JIT コンパイラから手動で選択する必要がありました。 1 つはアプリケーションの起動を高速化するために最適化され、もう 1 つは全体的なパフォーマンスを向上させます。 Java 7 では、両方の長所を活かすために階層型コンパイルが導入されました。 このチュートリアルでは、クライアントとサーバーの JIT コンパイラについて見ていきます。階層化されたコ

  • 実行中の JVM の診断

    1.概要 Java 仮想マシン (JVM) は、コンピュータで Java プログラムを実行できるようにする仮想マシンです。 この記事では、実行中の JVM を簡単に診断する方法を説明します。 JDK 自体には、さまざまな開発、監視、およびトラブルシューティングのアクティビティに使用できる多くのツールが用意されています。 jcmd を見てみましょう これは非常に使いやすく、実行中の JVM に関するさまざまな情報を提供できます。 さらに、jcmd JDK 7 以降では、JVM 診断を強化し、パフォーマンス オーバーヘッドを最小限に抑えるか、ゼロにすることを推奨するツールです。 2. jcm

  • 静的メンバーの JVM ストレージ

    1.概要 日常業務では、多くの場合、JVM の内部メモリ割り当てを気にしません。 ただし、JVM メモリ モデルの基本を知っておくと、パフォーマンスの最適化とコード品質の向上に役立ちます . この記事では、静的メソッドとメンバーの JVM ストレージについて説明します。 2. JVM のメモリ分類 静的メンバーのメモリ割り当てを深く掘り下げる前に、JVM のメモリ構造についての理解を更新する必要があります。 2.1.ヒープメモリ ヒープ メモリは、すべてのクラス インスタンスと配列にメモリを割り当てるために、すべての JVM スレッド間で共有されるランタイム データ領域です。 Ja

  • JVM パラメータ InitialRAMPercentage、MinRAMPercentage、および MaxRAMPercentage

    1.概要 このチュートリアルでは、JVM の RAM パーセンテージを設定するために使用できるいくつかの JVM パラメータについて説明します。 Java 8 で導入されたパラメータ InitialRAMPercentage 、MinRAMPercentage 、および MaxRAMPercentage Java アプリケーションのヒープ サイズの設定に役立ちます。 2. -XX:初期 RAM パーセンテージ 初期 RAM パーセンテージ JVM パラメータを使用すると、初期ヒープ サイズを構成できます Java アプリケーションの。 物理サーバーまたはコンテナの総メモリの割合です

  • JVM の実験的なガベージ コレクター

    1.はじめに このチュートリアルでは、Java メモリ管理の基本的な問題と、それを達成するためのより良い方法を常に見つける必要性について説明します。これは主に、Shenandoah と呼ばれる Java で導入された新しい実験的なガベージ コレクターと、他のガベージ コレクターとの比較について説明します。 2.ガベージ コレクションの課題を理解する ガベージ コレクタは、JVM のようなランタイムが実行中のユーザー プログラムのメモリの割り当てと再利用を管理する自動メモリ管理の形式です。ガベージ コレクタを実装するアルゴリズムはいくつかあります。これらには、参照カウント、マーク スイープ、

  • JVM 組み込み関数の概要

    1.はじめに この記事では、組み込み関数とは何か、Java やその他の JVM ベースの言語でどのように機能するかを学習します。 2.組み込み関数とは 組み込み関数は、プログラミング言語のコンパイラまたはインタープリターによって特別に処理される関数です。より具体的には、コンパイラまたはインタープリターがさまざまな理由で関数を別の実装に置き換えることができる特殊なケースです。 プログラミング言語は通常、特定のメソッド呼び出しが特別であることを理解することでこれを処理し、このメソッドを呼び出すたびに結果の動作が異なります。これにより、コードは通常と変わらないように見えますが、プログラミン

  • JVM の定数プールの概要

    1.はじめに .java をコンパイルするとき .class を持つ別のクラス ファイルを取得します。 拡大。 .class ファイルはいくつかのセクションで構成されており、定数プールはその 1 つです。 この簡単なチュートリアルでは、定数プールの詳細を調べます。また、サポートされている型と、情報をどのようにフォーマットするかについても説明します。 2. Java の定数プール 簡単に言えば、定数プールには、特定のクラスのコードを実行するために必要な定数が含まれています。基本的に、これはシンボル テーブルに似たランタイム データ構造です。これは、Java クラス ファイル内のクラスごと

  • Java プログラムが 64 ビットまたは 32 ビットの JVM で実行されているかどうかを確認する

    1.概要 Java はプラットフォームに依存しませんが、ネイティブ ライブラリを使用しなければならない場合があります。そのような場合、基盤となるプラットフォームを特定し、起動時に適切なネイティブ ライブラリを読み込む必要があるかもしれません。 このチュートリアルでは、Java プログラムが 64 ビットまたは 32 ビットの JVM で実行されているかどうかを確認するさまざまな方法を学習します。 まず、システム を使用してこれを実現する方法を示します。 クラス。 次に、Java Native Access (JNA) API を使用して JVM のビット数をチェックする方法について説明

  • DVM と JVM の違いは何ですか?

    1.はじめに この記事では、Java 仮想マシン (JVM) の違いについて説明します。 および Dalvik 仮想マシン (DVM) .最初にそれぞれを簡単に見てから比較します。 Android 5.0 以降、Dalvik 仮想マシンは Android ランタイム (ART) に置き換えられていることに注意してください。 2.ランタイムとは ランタイム システムは、Java などの高級言語で記述されたコードをマシン コードに変換するための環境を提供します。 中央処理装置 (CPU) が理解できます。 これらのタイプの翻訳者を区別できます: アセンブラ:アセンブリ コードをマシン コ

  • 配列の長さは JVM のどこに保存されますか?

    1.概要 この簡単なチュートリアルでは、HotSpot JVM が配列の長さを格納する方法と場所を確認します。 通常、ランタイム データ領域のメモリ レイアウトは JVM 仕様の一部ではなく、実装者の裁量に任されています。したがって、JVM 実装ごとに、メモリ内のオブジェクトと配列をレイアウトするための戦略が異なる場合があります。 このチュートリアルでは、特定の JVM 実装である HotSpot JVM に焦点を当てています。また、JVM と HotSpot JVM という用語を同じ意味で使用する場合もあります。 2.依存 JVM 内の配列のメモリ レイアウトを検査するために、Jav

  • JVM でのスタック サイズの構成

    1.概要 この簡単なチュートリアルでは、HotSpot JVM でスレッド スタック サイズを構成する方法について説明します。 2.デフォルトのスタック サイズ 各 JVM スレッドには、コール スタック情報、ローカル変数、および部分的な結果を格納するためのプライベート ネイティブ スタックがあります。したがって、スタックはメソッド呼び出しで重要な役割を果たします。これは JVM 仕様の一部であるため、すべての JVM 実装はスタックを使用しています。 ただし、スタック サイズなど、その他の実装の詳細は実装固有です。これ以降、HotSpot JVM に焦点を当て、JVM と HotSpo

  • JVM でのオブジェクト サイズの測定

    1.概要 このチュートリアルでは、各オブジェクトが Java ヒープで消費するスペースを確認します。 まず、オブジェクトのサイズを計算するためのさまざまなメトリックに慣れます。次に、インスタンス サイズを測定する方法をいくつか見ていきます。 通常、ランタイム データ領域のメモリ レイアウトは JVM 仕様の一部ではなく、実装者の裁量に任されています。したがって、JVM 実装ごとに、メモリ内のオブジェクトと配列をレイアウトするための戦略が異なる場合があります。これは、実行時のインスタンス サイズに影響します。 このチュートリアルでは、特定の JVM 実装である HotSpot JVM に

  • JVM での Invoke Dynamic の紹介

    1.概要 Invoke Dynamic (Indy とも呼ばれます) は、動的型付け言語の JVM サポートを強化することを目的とした JSR 292 の一部でした。 Java 7 での最初のリリースの後、invokedynamic opcode は、JRuby などの動的な JVM ベースの言語や、Java などの静的に型付けされた言語でさえ、非常に広く使用されています。 このチュートリアルでは、invokedynamic についてわかりやすく説明します どのようにできるか見てみましょう ライブラリと言語の設計者がさまざまな形式のダイナミクスを実装するのを支援します。 2.インボーク

  • JVM の <init> および <clinit> メソッド

    1.概要 JVM は、オブジェクトのインスタンスとクラスを初期化するために 2 つの独特な方法を使用します。 この簡単な記事では、コンパイラとランタイムが をどのように使用するかを見ていきます そして 初期化のためのメソッド 2.インスタンスの初期化方法 簡単なオブジェクトの割り当てと割り当てから始めましょう: Object obj = new Object(); このスニペットをコンパイルし、javap -c を介してそのバイトコードを調べると、 、次のようなものが表示されます: 0: new #2 // class java/lang/Obje

  • boolean および boolean[] JVM のメモリ レイアウト

    1.概要 この簡単な記事では、ブール値のフットプリントが何であるかを見ていきます さまざまな状況での JVM の価値。 まず、JVM を調べてオブジェクトのサイズを確認します。次に、これらのサイズの背後にある理論的根拠を理解します。 2.セットアップ JVM 内のオブジェクトのメモリ レイアウトを調べるために、Java オブジェクト レイアウト (JOL) を広範囲に使用します。したがって、jol-core を追加する必要があります 依存関係: <dependency> <groupId>org.openjdk.jol</groupId>

  • JVM チューニング フラグの調査

    1.概要 さまざまなチューニング フラグを使用して、HotSpot JVM をチューニングすることができます。このようなフラグは何百もあるため、それらとそのデフォルト値を追跡するのは少し大変です。 このチュートリアルでは、そのような調整フラグを発見し、それらを操作する方法を学ぶいくつかの方法を紹介します。 2. Java オプションの概要 java コマンドは、次のカテゴリに分類されるさまざまなフラグをサポートしています: すべての JVM 実装でサポートされることが保証されている標準オプション。通常、これらのオプションは –classpath、-cp、–version、 などの日常

  • JVM アプリケーションのシャットダウン フックの追加

    1.概要 通常、サービスを開始するのは簡単です。ただし、正常にシャットダウンするための計画が必要な場合もあります。 このチュートリアルでは、JVM アプリケーションを終了するさまざまな方法を見ていきます。次に、Java API を使用して JVM シャットダウン フックを管理します。 Java アプリケーションで JVM をシャットダウンする方法について詳しくは、この記事を参照してください。 2. JVM シャットダウン JVM は 2 つの異なる方法でシャットダウンできます: 管理されたプロセス 唐突な態度 制御されたプロセスは、次のいずれかの場合に JVM をシャットダウンしま

Total 309 -Java チュートリアル  FirstPage PreviousPage NextPage LastPage CurrentPage:1/16  20-Java チュートリアル/Page Goto:1 2 3 4 5 6 7