Skip to Content
Javaの最適化
book

Javaの最適化

by Benjamin J. Evans, James Gough, Chris Newland
March 2025
Intermediate to advanced
440 pages
6h 29m
Japanese
O'Reilly Media, Inc.
Content preview from Javaの最適化

第6章 ガベージ・コレクションを理解する

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

。 しかし、プラットフォームがリリースされた当初は、GCに対してかなりの敵意があった。 これは、Javaが意図的にコレクターの振る舞いを制御する言語レベルの方法を提供しなかった(そして、現代のバージョンでも、それは続いている)という事実によって煽られた。1

つまり、初期のころはJavaのGCの性能に不満があり、それがプラットフォーム全体に対する認識につながっていた。

しかし、強制的でユーザが制御できないGCという初期の構想は、十分すぎるほど正当化されており、最近では、メモリを手作業で管理すべきだという意見を守ろうとするアプリケーション開発者はほとんどいない。 システム・プログラミング言語(例えば、GoやRust)の最新版でさえ、メモリ管理は(例外的な状況以外では)プログラマではなく、コンパイラとランタイムの適切な領域であるとみなしている。

Javaのガベージ・コレクションの本質は、プログラマにシステム内のすべてのオブジェクトの正確な寿命を理解させるのではなく、ランタイムがプログラマに代わってオブジェクトを追跡し、不要になったオブジェクトを自動的に取り除くことである。自動的に回収されたメモリは、消去して再利用することができる。

ガベージ 、すべての実装が従う2つの基本規則がある:

  • アルゴリズムはすべてのゴミを回収しなければならない。

  • 生きているオブジェクトは決して回収してはならない。

この2つの規則のうち、2番目が圧倒的に重要である。生きているオブジェクトを収集すると、セグメンテーション・フォールトや、(さらに悪いことに)プログラム・データの無言の破損につながる可能性がある。JavaのGCアルゴリズムは、プログラムがまだ使用しているオブジェクトを決して収集しないことを確認する必要がある。

プログラマが低レベルの制御を放棄する代わりに、低レベルの細部まで手作業で説明する必要がなくなるという考え方は、Javaのマネージド・アプローチの本質であり、物事を成し遂げるためのブルーカラー言語としてのJavaというジェームズ・ゴスリングの概念を表現している。

この章では、Javaのガベージコレクションを支える基本的な理論のいくつかを紹介し、なぜガベージコレクションがプラットフォームの中で完全に理解し、制御するのが最も難しい部分の1つなのかを説明する。また、HotSpotが実行時にヒープ内のオブジェクトをどのように表現するかなどの詳細を含め、HotSpotのランタイムシステムの基本的な機能も紹介する。

章の終わりには、HotSpotのプロダクションコレクタの中で最もシンプルなパラレルコレクタを紹介し、多くのワークロードに有用な詳細について説明する。

マークとスイープの紹介

ほとんどのJavaプログラマは、強いて言えば、JavaのGCがマーク&スイープと呼ばれるアルゴリズムに依存していることを思い出すことができるが、そのプロセスが実際にどのように動作しているのか、詳細を思い出すのに苦労している。

このセクションでは、アルゴリズムの基本的な形式を紹介し、それがどのように自動的 にメモリを取り戻すために使用できるかを示す。これは意図的に簡略化されたアルゴリズムであり、いくつかの基本概念を紹介するためだけのものである。

このマーク&スイープアルゴリズムの入門的な形は、割り当て済みオブジェクトリストを使用して、割り当て済みだがまだ再要求されていない各オブジェクトへのポインタを保持する。全体的なGCアルゴリズムは次の式で表される: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ネットワークとKubernetes

ネットワークとKubernetes

James Strong, Vallery Lancey
ファストAPI

ファストAPI

Bill Lubanovic

Publisher Resources

ISBN: 9798341636446