Javaパフォーマンスチューニング 第2版

[cover photo]
TOPICS
Programming , Java
発行年月日
PRINT LENGTH
392
ISBN
4-87311-156-0
原書
Java Performance Tuning, 2nd Edition
FORMAT
Print
5,940円
この商品は品切れ再入荷未定です

本書は、Javaによるミッションクリティカルなアプリケーション開発において求められる「速度」、つまり実行効率の良いプログラム開発のための示唆に富む専門書である。あらゆる種類のJavaプログラムをチューニングし、JavaコードやJavaで構築されたシステムを速く動作させる方法について詳述。Javaのパフォーマンスチューニング全般に関する役立つ情報と実例(サンプルコード)が盛り込まれている。パフォーマンスチューニング計画の考え方やコンパイラ選定、性能の測定、改善の実際など、さまざまな角度からパフォーマンスチューニングを考察し、あわせて開発フェーズの各段階ごとに実践できる具体策を提示する。プロフェッショナルとして活躍するJavaプログラマにとって欠かせない1冊である。

目次

まえがき

1章      はじめに
        1.1     遅い理由
        1.2     チューニングゲーム
        1.3     システムの制限とチューニング対象
        1.4     チューニング戦略
        1.5     感覚的なパフォーマンス
        1.6     チューニングの開始
        1.7     測定対象
        1.8     チューニングする必要のないものをチューニングしないこと
        1.9     パフォーマンスチェックリスト

2章      プロファイリングツール
        2.1     測定とタイミング
        2.2     ガーベジコレクション
        2.3     メソッド呼び出し
        2.4     オブジェクト生成のプロファイリング
        2.5     総メモリ使用状況のモニタリング
        2.6     クライアント/ サーバ通信
        2.7     パフォーマンスチェックリスト

3章      JDK に対する基本的な改善
        3.1     ガーベジコレクション
        3.2     ヒープのチューニング
        3.3     全般的なチューニング
        3.4     ヒープの微調整
        3.5     共有メモリ
        3.6     JDK クラスの置換
        3.7     より高速なVM
        3.8     より良い最適化コンパイラ
        3.9     Sun のコンパイラと実行時最適化
        3.10    ネイティブマシンコードへのコンパイル
        3.11    ネイティブメソッド呼び出し
        3.12    圧縮されていないZIP/JAR ファイル
        3.13    パフォーマンスチェックリスト

4章      オブジェクト生成
        4.1     オブジェクト生成の統計量
        4.2     オブジェクト再利用
        4.3     参照オブジェクト
        4.4     ガーベジコレクションの回避
        4.5     初期化
        4.6     早期初期化とレイジ初期化
        4.7     パフォーマンスチェックリスト

5章      文字列
        5.1     String のパフォーマンスへの影響
        5.2     実行時対コンパイル時のString 解決
        5.3     String への変換
        5.4     char配列対String
        5.5     String の比較と検索
        5.6     国際化String のソート
        5.7     パフォーマンスチェックリスト

6章      例外、アサーション、キャスト、変数
        6.1     例外
        6.2     アサーション
        6.3     キャスト
        6.4     変数
        6.5     メソッドパラメタ
        6.6     パフォーマンスチェックリスト

7章      ループ、スイッチ、再帰
        7.1     ループ
        7.2     ループのチューニング
        7.3     例外終了ループ
        7.4     スイッチ
        7.5     再帰
        7.6     再帰とスタック
        7.7     パフォーマンスチェックリスト

8章      I/O、ログ、コンソール出力
        8.1     System.out の置換
        8.2     ロギング
        8.3     ローI/O からスモーキングI/O
        8.4     シリアライゼーション
        8.5     オブジェクトのクラスタリングとI/O 操作の回数
        8.6     圧縮
        8.7     NIO
        8.8     パフォーマンスチェックリスト

9章      ソート
        9.1     ソート時の不要なオーバーヘッドの回避
        9.2     効率的なソートフレームワーク
        9.3     O(nlogn)より効率的なソート
        9.4     パフォーマンスチェックリスト

10章     スレッド
        10.1    ユーザインタフェーススレッドと他のスレッド
        10.2    競合条件
        10.3    デッドロック
        10.4    同期のオーバーヘッド
        10.5    マルチスレッドテストの測定
        10.6    原子的なアクセスと代入
        10.7    スレッドプール
        10.8    ロードバランシング
        10.9    スレッド化による問題解決戦略
        10.10   パフォーマンスチェックリスト

11章     適切なデータ構造とアルゴリズム
        11.1    コレクション
        11.2    Java2 のコレクション
        11.3    Hashtable とHashMap
        11.4    クエリの最適化
        11.5    LinkedList とArrayList の比較
        11.6    RandomAccess インタフェース
        11.7    キャッシュアクセス
        11.8    キャッシュの例
        11.9    部分一致文字列のためのインデックスの検索
        11.10   探索木
        11.11   パフォーマンスチェックリスト

12章     分散コンピューティング
        12.1    ツール
        12.2    メッセージ数の削減
        12.3    通信層の比較
        12.4    キャッシング
        12.5    バッチ化その1
        12.6    アプリケーションのパーティショニング
        12.7    バッチ化その2
        12.8    低レベルな通信の最適化
        12.9    分散ガーベジコレクション
        12.10   データベース
        12.11   Web サービス
        12.12   パフォーマンスチェックリスト

13章     いつ最適化を行うか
        13.1    最適化を行うべきでない条件
        13.2    チューニングクラスライブラリとBean
        13.3    分析
        13.4    設計とアーキテクチャ
        13.5    配置後のチューニング
        13.6    パフォーマンスに影響する要因
        13.7    パフォーマンス計画
        13.8    パフォーマンスチェックリスト

14章     基本となるOS とネットワークの改善
        14.1    ハードディスク
        14.2    CPU
        14.3    RAM
        14.4    ネットワークI/O
        14.5    パフォーマンスチェックリスト

15章     J2EE パフォーマンスチューニング
        15.1    パフォーマンスプランニング
        15.2    J2EEのモニタリングとプロファイリングツール
        15.3    測定:何を、どこで、どのように
        15.4    負荷テスト
        15.5    ユーザの知覚
        15.6    クラスタリングとロードバランシング
        15.7    JMS のチューニング
        15.8    パフォーマンスチェックリスト

16章     JDBC のチューニング
        16.1    JDBC パフォーマンスの測定
        16.2    JDBC のチューニング
        16.3    パフォーマンスチェックリスト

17章     サーブレットとJSP のチューニング
        17.1    SingleThreadModel を使用しないこと
        17.2    効果的なページ作成と出力
        17.3    ボディタグ
        17.4    キャッシュタグ
        17.5    HttpSession
        17.6    圧縮
        17.7    さらなるパフォーマンスにおける助言
        17.8    ケーススタディ:エースハードウェアSPECmine ツール
        17.9    パフォーマンスチェックリスト

18章     EJB のチューニング
        18.1    主要な設計ガイドライン
        18.2    パフォーマンス最適化のデザインパターン
        18.3    アプリケーションサーバ
        18.4    EJB をチューニングする際のさらなる提案
        18.5    ケーススタディ:ペットストア
        18.6    ケーススタディ:Elite.com
        18.7    パフォーマンスチェックリスト

19章     その他のリソース
        19.1    主要なリソース
        19.2    書籍
        19.3    雑誌
        19.4    URL
        19.5    プロファイラ
        19.6    オプティマイザ

索引