Skip to Content
Javaパフォーマンス
book

Javaパフォーマンス

by Scott Oaks, Acroquest Technology株式会社, 寺田 佳央, 牧野 聡
April 2015
Intermediate to advanced
448 pages
6h 47m
Japanese
O'Reilly Japan, Inc.
Content preview from Javaパフォーマンス

7章ヒープのベストプラクティス

5章と6章では、ガベージコレクターのチューニングを通じてプログラムへの影響を最小限にとどめるための方法を詳しく紹介しました。このようなチューニングももちろん重要ですが、ベストプラクティスに従ってプログラミングを行うほうが効果的なことがよくあります。この章では、Javaでのヒープの使い方に関するベストプラクティスをいくつか紹介します。

ここでは、相反する2つのゴールを追求します。一般的には、オブジェクトを生成する回数を減らし、必要なくなったらすぐに廃棄するべきというルールがあります。メモリの使用量を減らすというのは、ガベージコレクターの効率を上げる上で最も効果的です。一方、同じ種類のオブジェクトを何度も生成するというのは(ガベージコレクションのパフォーマンスは向上しますが)全体としてのパフォーマンスの悪化につながります。このようなオブジェクトを破棄せず再利用するようにすれば、パフォーマンスは大きく向上するでしょう。オブジェクトを再利用するための方法は多数考えられており、例えばスレッドローカル変数や特別なオブジェクト参照、オブジェクトプールなどを利用できます。再利用されるオブジェクトは長命になるため、ガベージコレクターの処理に若干の影響はあります。しかし、オブジェクトを適切に再利用できれば全体としてのパフォーマンスは向上します。

この章では両方のアプローチを取り上げ、それぞれのトレードオフを明らかにします。その前にまず、ヒープの中で起こっていることを知るためのツールについて学ぶことにしましょう。

7.1 ヒープの分析

ガベージコレクションのログや5章で紹介したツールは、アプリケーションに対するガベージコレクションの影響を理解するために大きく役立ちます。これ以上の分析が必要な場合は、ヒープ自体について見てみましょう。これから紹介するツールを使うと、アプリケーションが現在どのようなオブジェクトを利用しているのか把握できます。 ...

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.
Start your free trial

You might also like

パフォーマンス向上のためのデザイン設計

パフォーマンス向上のためのデザイン設計

Lara Callender Hogan, 西脇 靖紘, 星野 靖子
初めてのSQL 第3版

初めてのSQL 第3版

Alan Beaulieu, 株式会社クイープ
プログラミングC# 第8版

プログラミングC# 第8版

Ian Griffiths, 木下 哲也, 鈴木 幸敏
Python機械学習クックブック

Python機械学習クックブック

Chris Albon, 中田 秀基

Publisher Resources

ISBN: 9784873117188Other