最初の 2 つの記事「JVM の概要 - ランタイム データ領域」と「JVM の一般的なガベージ コレクション アルゴリズム」では、実際に JVM の仕様と一般的に使用されるガベージ コレクション アルゴリズムについて言及しました。具体的な JVM の実装は、実際には複数種類あります。 、JRockit、J9が待機していますが、もちろん最も有名なものはHotSpot JVMです。以下は HotSpot JVM の全体的なアーキテクチャ図です。この記事では、HotSpot のガベージ コレクター (ガベージ コレクター) に焦点を当てます。
既存のHotSpotガベージコレクタとその関係と適用範囲を以下の図に示します:
その中のG1新品では非常に目立ちますlife 新世代と旧世代の間では、このG1 GCは新世代でも旧世代でも使えると推測できます。まさに、G1は画期的なものであると言えます。新しいコンセプトGCを作っています。 上記のガベージコレクターを紹介する前に、まず
Client仮想マシンのServerモードについて説明する必要があります。Javaができることはクライアントであることです。簡単に言えば、GUIデスクトップアプリケーションであり、第二に、サーバーサイドとして使用できます。 2 つのモード: クライアント モードは起動が速く、起動後のパフォーマンスが低くなります。 サーバー モードは起動が遅く、起動後のパフォーマンスが高くなります。 Serial GC (
-XX:+UseSerialGC、コピーアルゴリズム、新世代)これは比較的古いガベージコレクトですまたは、わかりました「シンプルで粗雑な
」。シンプルで粗雑なメソッドは、多くの場合、単純な環境を処理できます。実際、クライアントモードでもまったく同じです。これはシリアル ガベージ コレクターです。シリアルとは、マルチコア プロセッサであっても、複数のスレッドを並行して収集できないことを意味します。シリアルである間は、他の通常の動作スレッドも停止します。これは、 「世界を止めてください」 と呼ばれます。 。これは非常に簡単に理解できますが、ゴミを掃除しているときに、同時に誰かにゴミを捨ててほしくないのです。もちろん、シリアル GC は、今日の HotSpot JVMServer モードではほとんど放棄されています。さらに、Javaヒープの若い世代で動作するガベージコレクション「コピーアルゴリズム」を使用して動作します。
ParNew GC(-XX:+UseParNewGC, コピーアルゴリズム, 新世代)
ParNew GC実はそれSerial GCのマルチスレッドバージョンです。前述したように、シリアル GC マルチコア CPU 環境でも、ガベージ メモリを再利用するために単一のスレッドが使用されます。このガベージ コレクター側は、マルチスレッド環境でガベージ メモリをリサイクルできます。このマルチスレッドは、ユーザー スレッドと並行して実行されるのではなく、ガベージ コレクションのマルチスレッドにすぎません。そしてCMSの旧世代ガベージコレクターでのみ使用可能であり、CMSはまさに画期的なガベージコレクターなので、JVMの旧世代ガベージコレクターが用CMS、新世代のガベージコレクターは通常、ParNew GCです。
Parallel GC (-XX:+UseParallelGC、コピーアルゴリズム、新世代)
ParaNew GCとどことなく似ており、名前からもパラレルですマルチスレッド収集デバイス。前に、GCのプロセス中に「Stop the world」を行う必要があると述べましたが、多くのガベージ コレクター (最初の 2 つを含む) は、一時停止を改善する方法に重点を置いています。時間。そして、並列 GC はスループットに重点を置いています。ガベージ コレクションの全体的な時間が短い場合、スループットは高く、CPU はタスクの実行により多くの時間を費やすことができます, (スループット )。 = タスク実行時間 /(タスク実行時間 + ガベージコレクション時間))。
Serial Old GC (-XX:+UseSerialOldGC、マーク付き-圧縮アルゴリズム、古い世代)
Serial GC旧バージョンも同様ですシングルスレッドで、旧世代の GC と同様に Parallel GC でも使用できます。
Parallel Old GC (-XX: +UseParallelOldGC、マーク付き-圧縮アルゴリズム、旧世代)
新世代ではParallel GCを選択し、旧世代ではSerial Old GCしか選択できないジレンマを回避するために、Parallel GC——Parallel Old GCの旧世代版が登場しました。したがって、高いスループットを必要とするいくつかの定数を使用する場合は、Parallel GC と Parallel Old GC の組み合わせが適切な選択となります。 CMS GCほぼ
JVM旧世代のガベージコレクタの半分を占めており、その画期的な意義は、ガベージコレクションスレッドがユーザースレッドとほぼ同時に動作できることです。 「もうすぐ」は、まだ出来ないし、「世界を止めろ」も必要ないからですが、できるだけ一時停止時間を短くします。
ガベージ コレクション プロセス全体は、次の 4 ステップに分割できます: 初期マーキング同時マーキングリマーキング
同時クリーンアップ これ
4つのステップ 実際のプロセス 上記は、ユーザースレッドと同時に動作することです。つまり、- ゴミを投げると同時に掃除するこれは問題を引き起こします。マーク後にゴミが発生した場合は、次回のリサイクルまで待つだけです。もちろん、マーキングが完了した後は、当然ゴミはユーザースレッドと競合することはなくなり、クリーンアップ処理もユーザースレッドと同時に処理できるようになります。このガベージ コレクターのより明らかで避けられない問題の 1 つは、
- "mark
- -clear
- " アルゴリズムを使用していることです。これは、存続するオブジェクトを圧縮しないことを意味します。メモリ空間の断片化の問題については、連続して大きなメモリ空間を割り当てる必要がある場合、
を 1 回だけトリガーできます。前の記事「JVM の一般的なガベージ コレクション アルゴリズム」では、新世代のガベージ コレクションは "マイナー GC" と呼ばれ、古い世代のガベージ コレクションは "メジャー GC" と呼ばれると述べました。 " "Full GC" は、ヒープ全体でガベージ コレクションをトリガーします。コストが非常に高くなることが考えられ、この時点でユーザー スレッドを一時停止する必要があります。調整できるのは のパラメーターのみです。特定の使用シナリオに合わせて CMS GC を調整して最適化します。 ☆ガベージファースト(G1) GC (-XX:+UseG1GC) G1 GCは、これまでのすべてのガベージコレクターとは異なります。最初の2番目の写真からわかるように、新しい世代と古い世代をカバーするか、論理的にのみ保持されます」 「新しい」という用語は、世代「と」旧世代「」は実際にはもう存在しません。JDK6では実験版であり、JDK7u4では正式に商用化されませんこのガベージ コレクターについては、後で別途説明します。また、その文書のアドレスは http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1&rep=rep1&type=pdfです。 。
以上がホットスポット -- ガベージ コレクター (JVM) の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター
