第1章. 最適化とパフォーマンスの定義
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Java(または他の種類のコード)のパフォーマンス を最適化することは、しばしばダークアートとみなされる パフォーマンス分析には神秘性がある。一般的には、「拷問を受けながら深く思考する孤独なハッカー」(コンピュータとそれを演算子としている人々に関するハリウッドのお気に入りの題材の1つ)が実践する技とみなされている。 そのイメージは、システムの奥深くまで見通すことができ、システムをより速く動作させる魔法のような解決策を考え出すことができる一個人というものだ。
このようなイメージは、パフォーマンスがソフトウェア・チームの二流の関心事であるという不幸な(しかし、あまりにも一般的な)状況と結合することが多い。 このため、分析が行われるのは、システムがすでにトラブルに見舞われ、それを救うためにパフォーマンスの「ヒーロー」が必要になってからというシナリオが設定される。 しかし、現実は少し異なる。
実は、パフォーマンス分析とは、ハードな経験主義とぐにゃぐにゃした人間心理の奇妙なブレンドなのである。 重要なのは、可観測性メトリックの絶対数と、エンドユーザや利害関係者がそれについてどう感じるかということである。 この明白なパラドックスの解決が、本書の残りの主題である。
初版の出版以来、この状況は先鋭化する一方である。 より多くのワークロードがクラウドに移行し、システムがますます複雑化するにつれて、まったく異なる要素が組み合わさった奇妙な醸造酒の重要性と普及率はさらに高まっている。 パフォーマンスを重視する演算子が操作する必要のある「関心領域」は広がり続けている。
本番システムがさらに複雑化し、個々のアプリケーション・プロセスのパフォーマンスだけでなく、分散システムの側面も考慮しなければならないものが増えたからだ。 システム・アーキテクチャが大規模化、複雑化するにつれて、パフォーマンスに関心を持たなければならないエンジニアの数も増えている。
本書の新版は、このような業界の変化に対応するため、以下の4点を提供している:
-
単一のJava仮想マシン(JVM)内で実行されるアプリケーション・コードのパフォーマンスについて、深く掘り下げる必要がある。
-
JVM内部の議論
-
最新のクラウドスタックがJava/JVMアプリケーションとどのように相互作用するかを詳しく説明する。
-
クラウド環境のクラスタ上で動作するJavaアプリケーションの振る舞いを初めて見た
この章では、Javaの性能に関する多くの議論を悩ませているいくつかの問題や落とし穴から始めて、いくつかの定義で舞台を整え、性能についてどのように語るかの枠組みを確立することから始めよう。
Java パフォーマンスの間違った使い方
何年もの間、 、Googleで "Java performance tuning "でヒットするトップ3のうちの1つは、1997-8年の記事であった。この記事は、Googleの歴史のごく初期にインデックスに取り込まれたものであった。このページは、初期化されたランキングが積極的にトラフィックを誘導し、フィードバック・ループを作成したため、トップに近い位置にとどまったと考えられる。
このページには、完全に時代遅れで、もはや真実ではなく、多くの場合、アプリケーションにとって有害なアドバイスが掲載されていた。 ...
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