Skip to Content
『クラウドネイティブJavaの最適化 第2版』
book

『クラウドネイティブJavaの最適化 第2版』

by Benjamin J. Evans, James Gough
March 2025
Intermediate to advanced
496 pages
7h 17m
Japanese
O'Reilly Media, Inc.
Content preview from 『クラウドネイティブJavaの最適化 第2版』

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

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

この章では、JVMのガベージコレクション サブシステムを紹介する。基本的な理論 のマークとスイープトレース・ガベージコレクションとしても知られている)の概要から始めてアプローチする。 その後、HotSpotランタイムの低レベルの機能と、実行時にJavaオブジェクトをどのように表現するかを見ていく。

章の後半では、HotSpotがアロケーションに使用する2つの重要なテクニックを説明する前に、アロケーションとライフタイムの重要な概念について説明します。 その後、これまで説明したトピックをすべてまとめ、HotSpotのプロダクションコレクタの中で最もシンプルな 、パラレルコレクタを紹介し、多くのプロダクションワークロードに役立つ詳細について説明します。

ガベージコレクションは膨大なテーマなので、この章では入門的な内容しかカバーできない。第5章では、より高度なトピックの一部を取り上げる。

まず、Java環境にはいくつかの象徴的あるいは定義的な特徴があり、ガベージ・コレクションは最もすぐに認識できる特徴の一つであることに注目しよう。

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

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

System.gc() メソッドは存在するが、基本的に実用的な目的には使えない。1

このため、初期の頃は、JavaのGCのパフォーマンスがあまり良くないことに加えて、Javaの機能に対する不満がある程度あった。 これはプラットフォーム全体に対する認識にも影響し、今日でも、JavaのGCが問題だと、間違った思い込みをしている人に出会うことがある。 実際のところ、最近のJavaのGCは信じられないほど高速(クラス最高)で、大半の実運用ワークロードに完全に適している。

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

ガベージコレクションには2つの基本規則があり、すべての実装がこれを守るよう努力している:

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

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

この2つの規則のうち、前者が圧倒的に重要である。生きているオブジェクトを収集すると、セグメンテーション・フォールトや、(さらに悪いことに)プログラム・データの無言の破損につながる可能性がある。Javaの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

仕事ではじめる機械学習 第2版

仕事ではじめる機械学習 第2版

有賀 康顕, 中山 心太, 西林 孝
Linuxカーネルプログラミング 第2版

Linuxカーネルプログラミング 第2版

Kaiwan N. Billimoria, 武内 覚, 大岩 尚宏
詳解 システム・パフォーマンス 第2版

詳解 システム・パフォーマンス 第2版

Brendan Gregg, 西脇 靖紘, 長尾 高弘
Kafka:決定版 第2版

Kafka:決定版 第2版

Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty

Publisher Resources

ISBN: 9798341633346