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の最適化

第1章. 最適化とパフォーマンスの定義

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

。パフォーマンス分析には神秘的な雰囲気がある。一般的には、「拷問を受けながら深く考える孤独なハッカー」(コンピュータとそれを演算する子に関するハリウッドのお気に入りの題材の1つ)が実践する技術として捉えられている。そのイメージは、システムを深く洞察し、システムをより速く動作させる魔法の解決策を考え出すことができる1人の個人というものだ。

このようなイメージは、パフォーマンスがソフトウェア・チームの二の次であるという不幸な(しかし、あまりにも一般的な)状況と結合することが多い。 このため、分析が行われるのはシステムがすでにトラブルに陥っているときだけで、それを救うためにパフォーマンスの「ヒーロー」が必要になるというシナリオが設定される。 しかし、現実は少し異なる。

実は、パフォーマンス分析とは、ハードな経験主義とぐにゃぐにゃした人間心理の奇妙なブレンドなのである。 重要なのは、可観測性メトリックの絶対数と、エンドユーザや利害関係者がそれについてどう感じるかということである。 この明白なパラドックスの解決が、本書の残りの主題である。

Javaのパフォーマンス-間違った方法

何年もの間、Googleで "Java performance tuning "でヒットするトップ3のうちの1つは1997-8年の記事で、Googleの歴史のごく初期にインデックスに取り込まれたものであった。このページが上位に留まっていたのは、初期化されたランキングが積極的にトラフィックを誘導し、フィードバックループを作成していたからだと思われる。

このページには、完全に時代遅れで、もはや真実ではなく、多くの場合アプリケーションにとって有害なアドバイスが掲載されていた。 しかし、検索エンジンの検索結果で有利な位置にあったため、多くの開発者がひどいアドバイスにさらされることになった。

例えば、Javaのごく初期のバージョンは、メソッド・ディスパッチのパフォーマンスがひどかった。 その回避策として、一部のJava開発者は、小さなメソッドを書くのを避け、代わりにモノリシック・メソッドを書くことを提唱した。 もちろん、時が経つにつれて、仮想ディスパッチのパフォーマンスは大幅に改善された。それだけでなく、最新のJava仮想マシン(JVM)と、特に自動マネージド・インライニングによって、仮想ディスパッチは現在では呼び出し先の大半で排除されている。「すべてを1つのメソッドにまとめる」というアドバイスに従っていたコードは、最新のジャストインタイム(JIT)コンパイラーに非常に不利なため、現在ではかなり欠点がある。

不適切なアドバイスを受けたアプリケーションのパフォーマンスにどれだけの損害が出たかは知る由もないが、このケースは、パフォーマンスに対して定量的で検証可能なアプローチを用いないことの危険性を端的に示している。また、インターネットで読んだことをすべて鵜呑みにしてはいけない理由の、もうひとつの好例でもある。

注

Javaコードの実行速度は非常にダイナミックで、基盤となるJava仮想マシンに基本的に依存する。 古いJavaコードは、Javaソース・コードを再コンパイルしなくても、より新しいJVM上でより速く実行されるかもしれない。

ご想像の通り、このような理由から(そして後述するその他の理由からも)、本書はあなたのコードに適用するパフォーマンスに関するヒントを集めた料理本ではない。その代わりに、優れたパフォーマンス・エンジニアリングを生み出すための様々な側面に焦点を当てている: ...

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