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版』

第6章. JVM上でのコード実行

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

JVM が提供する2つの主要なサービスは、メモリ管理とアプリケーション・コード実行のための使いやすいコンテナである。ガベージ・コレクションについては第4章と第5章で少し詳しく説明したがこの章ではコード実行について説明する。

通常VM仕様と呼ばれるJava仮想マシン仕様は、適合するJava実装がどのように振る舞う必要があるかを記述していることを思い出してほしい。

仮想マシン仕様では、Javaバイトコードの実行をインタプリタ( )の観点から定義している。 しかし、大まかに言って、インタプリタ環境は、マシン・コードを直接実行するプログラミング環境と比較して、パフォーマンスが劣る。 本番グレードの最新Java環境のほとんどは、動的コンパイル機能を提供することで、この問題を解決している。

章で説明したように、この能力は別名ジャスト・イン・タイム・コンパイル( JITコンパイル)とも呼ばれる。 JVMがどのメソッドが実行されているかを追跡し、個々のメソッドが直接実行可能なコードにコンパイルする資格があるかどうかを判断するメカニズムである。

この章では、まず今日一般的に行われているJavaアプリケーションの基本的なライフサイクルを説明し、次にバイトコード解釈の概要と、HotSpotが他のインタプリタと異なる理由を説明する。

次に、JITコンパイルとプロファイルガイド付き最適化の基本概念について説明する。 コードキャッシュについて説明し、HotSpotのコンパイルサブシステムの基本を紹介する。

この章の終わりでは、Javaプログラムの実行をどのように扱うべきかを再考することで、Javaプラットフォームにおける最近の変化について述べる。 このような開発は、クラウドにデプロイされるアプリケーションへの移行と、この新しいデプロイ環境の懸念に対処する必要性によって、主に促されてきた。

従来のJavaアプリケーションのライフサイクル

Unix系システム(LinuxやMacなど)でjava HelloWorld と入力すると実際に何が起こるのか、もう少し深く潜ってみることから始めよう。Windowsでも同様のことが言える。

低レベルでは、単一プロセスであるJVMをセットアップするために、標準的なプロセス実行が行われる。 シェルはJVMバイナリを探し(例えば、おそらく$JAVA_HOME/bin/java )、引数(エントリポイント・クラス名を含む)を渡して、そのバイナリに対応するプロセスを開始する。

新しく開始されたプロセスは、コマンドライン・フラグを分析し、フラグ(ヒープサイズ、GCなど)によってカスタマイズされる仮想マシンの初期化の準備をする。 このとき、プロセスは実行中のマシンをプローブし、マシンのCPUコア数、メモリ量、CPU命令の正確なセットなど、さまざまなシステム・パラメータを調べる。

この非常に詳細な情報は、JVMがそれ自身をどのように構成するかをカスタマイズし、最適化するために使用される。 例えば、JVMはコア数を使用して、ガベージ・コレクションが実行されるときに使用するスレッド数を決定し、スレッドの共通プールのサイズを決定する。

チップ

JVMの自動プロービングと自己コンフィギュレーションの振る舞いは、Javaアプリケーションがコンテナ内でどのように振る舞うかに影響するため、認識しておくことが重要である。これについては ...

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, 武内 覚, 大岩 尚宏
プログラミングRust 第2版

プログラミングRust 第2版

Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基
詳解 システム・パフォーマンス 第2版

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

Brendan Gregg, 西脇 靖紘, 長尾 高弘

Publisher Resources

ISBN: 9798341633346