2章パフォーマンステストのアプローチ

この章では、パフォーマンステストの際の原則を4つ紹介します。これらは以降の章での解説の基礎になります。また、これらはパフォーマンスエンジニアリングでの「サイエンス」の部分に相当します。

本書全体を通じて利用するサンプルアプリケーションについても、この章で紹介しています。

2.1 実アプリケーションでテストする

第1の原則は、実際のアプリケーションを使って実際の使い方でテストするべきというものです。パフォーマンステストに利用できるコードは大まかに分けると3種類あり、それぞれに長所と短所があります。実際のアプリケーションを使うテストが、最善の結果をもたらしてくれます。

2.1.1 マイクロベンチマーク

1つ目のカテゴリーはマイクロベンチマークです。これは、とても小さな単位でパフォーマンスを測定するためのテストです。synchronizedメソッドとそうでないメソッドの呼び出しにかかる時間を比較したり、スレッドの生成と再利用とでオーバーヘッドを比較したり、何らかのアルゴリズムの実行時間を別の実装と比較するといったことが可能です。

マイクロベンチマークは優れたアイデアのようにも思えますが、正しく記述するのはとても困難です。以下のようなコードについて考えてみましょう。50番目のフィボナッチ数を求める実装について、パフォーマンステストのためのマイクロベンチマークを作成しようとしています。

public void doTest() { // メインのループ double l; long then = System.currentTimeMillis(); for (int i = 0; i < nLoops; i++) { l = fibImpl1(50); ...

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.