1章イントロダクション

本書はJavaパフォーマンスについての「アート」と「サイエンス」を明らかにします。

サイエンスつまり科学の部分については、驚くほどのことはありません。パフォーマンスについての議論では、数値や測定や分析が大量に現れるのは当然です。ほとんどのパフォーマンスエンジニアは科学を専門としており、最大限のパフォーマンスを獲得する上で科学的な厳密さは欠かせません。

さて、アートつまり芸術の部分についてはどうでしょうか。パフォーマンスチューニングはアートとサイエンスの組み合わせからなるという考え方は取り立てて新しいものではありませんが、パフォーマンスに関する議論ではしばしばこのことが軽視されています。理由の1つとして、芸術という概念は訓練と相容れないというものが考えられます。

また、ある人には芸術と思えることが実は深い知識や経験に基づいているということもあります。高度な技術は魔法と区別がつきません。きっと、アーサー王と騎士たちにとって携帯電話は魔法のように思えることでしょう。同じように、優れたパフォーマンスエンジニアによる作業は芸術のように見えるかもしれませんが、実際には深い知識と経験そして勘の産物なのです。

本書は経験や勘の部分を補うことはできませんが、深い知識の獲得には貢献できると考えます。知識を蓄積していけば、よいJavaパフォーマンスエンジニアにになるためのスキルを磨けるでしょう。Javaプラットフォームのパフォーマンスという側面について、深い知識を提供することを本書はめざします。

本書での知識は大きく2つのカテゴリーに分けられます。1つは、JVM(Java Virtual Machine)自体のパフォーマンスです。JVMの設定はプログラムのパフォーマンスに多くの面で影響を及ぼします。他の言語に慣れている開発者は、JVMのチューニングを面倒と感じるかもしれません。しかし現実として、このようなチューニングは例えばC++プログラマーがコンパイラのフラグをいろいろ選び試してみるようなものです。あるいは、PHPプログラマーが ...

Get Javaパフォーマンス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.