コンセプト 仮想マシン: 完全なハードウェア システム機能をシミュレートし、完全に分離された環境でソフトウェア方式で実行される完全なコンピュータ システムを指します。これは物理マシンのソフトウェア実装です。一般的に使用される仮想マシンには、VMWare、Visual Box、Java 仮想マシン (Java 仮想マシン、略して JVM) などがあります。
Java 仮想マシン キャンプ: Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、Azul VM、Apache Harmony、Google Dalvik VM、Microsoft JVM… プロセスを開始する 基本的なアーキテクチャ Java ランタイムはソース コード (.java) をバイトコードにコンパイルし、それが jre によって実行されます。 jre は Java 仮想マシン (jvm) によって実装されます。 Jvm はバイトコードを分析し、解釈して実行します。 JVM は 3 つの主要なサブシステムで構成されています。
ガベージコレクション (GC) 1. ゴミを識別し、リサイクル可能かどうかを判断するにはどうすればよいでしょうか?
2. Java のヒープは、GC がガベージを収集する主な領域です。 GC は、マイナー GC とフル GC (またはメジャー GC) の 2 種類に分けられます。
GCアルゴリズム リサイクル戦略に応じて、マークスイープアルゴリズム、マークコンパクトアルゴリズム、コピーアルゴリズムに分けられます。 1. マークアンドスイープアルゴリズム:「マーキング」と「スイープ」の 2 つの段階に分かれています。まず、リサイクル可能なオブジェクトをマークし、マークが完了したら、マークされたすべてのオブジェクトが占めるメモリ領域をリサイクルします。デメリット: 1. 循環参照を処理できない 2. 効率が低い 3. 大量のメモリフラグメントが生成される (追記: スペースの断片化が多すぎると、将来大きなオブジェクトを割り当てるときに十分な連続メモリスペースを適用できなくなり、新しいラウンドの GC が事前にトリガーされる可能性があります) 2. マークソートアルゴリズム:「マーキング」と「ソート」の 2 つの段階に分かれています。まず、リサイクルできるものに印を付けます。マークした後、オブジェクトを一方の端に移動し、境界の外側のメモリを直接クリーンアップします。 3. コピーアルゴリズム: メモリ空間を 2 つの等しい領域に分割し、一度に 1 つの領域のみを使用します。 gc 中、現在使用されている領域が走査され、使用中のオブジェクトが別の領域にコピーされます。このアルゴリズムは、使用中のオブジェクトのみを毎回処理するため、コピーコストは比較的小さくなります。同時に、コピー後にメモリを適切にソートできるため、「断片化」の問題は発生しません。デメリット: 1. メモリ使用率の問題 2. オブジェクトの生存率が高い場合、効率が低くなります。 パーティション処理に応じて、増分コレクションアルゴリズム、世代別コレクションアルゴリズムに分けられます。 1. 増分コレクション: リアルタイム ガベージ コレクション アルゴリズム。つまり、アプリケーションの実行中にガベージ コレクションが実行されます。理論的には、従来の生成方法によって発生する問題を解決できます。増分コレクションは、ヒープ領域を一連のメモリ ブロックに分割します。使用する際は、まず一部から使用してください。ガベージコレクションを行う際は、以前使用されていた部分に残っているオブジェクトを、後ろの未使用のスペースに配置します。これにより、従来の生成方法のように、使用がすべて完了した後にリサイクルのために一時停止する状況を回避し、使用しながら収集する効果が得られます。 2. 世代別コレクション: (商用デフォルト) オブジェクトのライフサイクルに基づいて、新世代、旧世代、メタスペースに分割され、異なるライフサイクルで異なるアルゴリズムを使用してオブジェクトをリサイクルします。 システムスレッドに応じて、シリアルコレクションアルゴリズム、並列コレクションアルゴリズム、同時コレクションアルゴリズムに分類できます。 1. シリアルコレクション: 単一のスレッドを使用してガベージコレクション作業を処理します。実装が簡単で、効率が高くなります。デメリット: 1. 複数のプロセッサを活用できない 2. ユーザースレッドを一時停止する必要がある 2. 並列コレクション: マルチスレッドを使用してガベージ コレクション作業を高速かつ効率的に処理します。理論的には、CPU の数が多いほど、並列コレクターが発揮できる利点は多くなります。デメリット: ユーザースレッドを一時停止する必要がある 3. 同時収集: ガベージ スレッドとユーザー スレッドが同時に動作します。システムはガベージコレクション中にユーザースレッドを一時停止する必要がない GCコレクターの一般的な組み合わせ JVM パフォーマンス チューニングのアイデア GCログを理解する
一般的な異常
|
<<: 調査レポート: パブリッククラウドストレージはお金の無駄
>>: QingCloud KubeSphere(QKE)は、基盤となる運用やメンテナンスを必要とせず、よりシンプルで使いやすいです。
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス1. コンテンツは We...
この記事はWeChatの公開アカウント「Java Geek Technology」から転載したもので...
みなさんこんにちは、私はpshuです。本日の Coder English Class の第 6 回目...
Baidu が Aibang.com を買収すると聞いてショックを受けました。驚き、残念に思いました...
平日は一番静かなライブ配信販売グループも、10月からはすごく賑やかになってきました。李佳琦のライブ放...
SEO 担当者として、新しいウェブサイトを頻繁に引き継ぐのはよくあることです。新しいウェブサイトの場...
ここ数日、ポジショニングについて学んできました。今日は、個人ウェブマスターがそれぞれの分野でポジショ...
SEO は本当に退屈なので、多くの初心者にとっては耐えられないものになります。現在外部リンクを投稿し...
今年、国内クラウドサービス市場規模は2,256億元と過去最高を記録した。感染症の流行によりオフライン...
2019年テンセントグローバルデジタルエコシステムカンファレンスの重要な一環として、「デジタルエコシ...
上記ではTektonのインストールと理論的知識を紹介しました。この記事を注意深く読めば、何か得られる...
少し前に、ウエディングドレスの海外取引を行っている電子商取引会社が、その成功体験をシェアしているとい...
多くのウェブマスターの友人は、最適化に取り組み始めると、ユーザーフレンドリーなエクスペリエンスやペー...
背景時は経つのは早いもので、もう2024年です。2015年に就職したばかりの頃は、SSM/H(Spr...
Limewave は特別なブラックフライデー イベントを開始しました。2G メモリ、2 コア (RY...