レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) [電子書籍]
    • レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) [電子書籍]

    • ¥3,630726 ゴールドポイント(20%還元)
    • ただいま予約受付中!2026年11月17日00:00:00からお読みいただけます

レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) [電子書籍]

Pekka Enberg(著者)、設樂 洋爾(著者)
価格:¥3,630(税込)
ゴールドポイント:726 ゴールドポイント(20%還元)(¥726相当)
フォーマット:
専用電子書籍リーダーアプリ「Doly」が必要です。無料ダウンロード
お届け日:ただいま予約受付中!
出版社:インプレス
公開日時:2026年11月17日00:00:00からお読みいただけます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) の 商品概要

  • ハードウェアレベルから分散システムまで、
    理論からRust/Pythonによる実践まで、
    システム遅延削減のすべてを一冊に!

    ミリ秒からナノ秒レベルまで、
    遅延という壁を突破する技術を解説。


    本書の主題は、操作から結果が観測されるまでの遅延時間「レイテンシー」です。ハードウェアの物理的制約から分散システムのアーキテクチャ設計、コードレベルのチューニングまで、アプリケーションスタックの全レイヤーにおける遅延削減手法を体系化した、類を見ない包括的な一冊となっています。

    金融の高頻度取引やリアルタイムゲームをはじめ、応答性能やユーザー体験が極めて重要なシステムを開発・運用し、遅延改善に取り組むすべての開発者・エンジニアに確かな指針を提供します。

    第1部では、レイテンシーの厳密な定義を出発点とし、リトルの法則やアムダールの法則といった重要なモデリング手法を押さえつつ、Pythonを使った遅延の計測・可視化方法などの基礎を固めます。

    続く第2部と第3部では、コロケーションやレプリケーション、高性能キャッシュといったデータ配置戦略から、アルゴリズムの計算量削減、ウェイトフリー同期、高度な並行処理モデルまで、サンプルコードも交えながら、ボトルネックを極限まで排除するアプローチを掘り下げます。

    終盤の第4部では、どうしても削減しきれない不可避の遅延に立ち向かうため、非同期I/Oやイベントループ、さらにはプリフェッチや投機的実行といった「予測的手法」によってシステムの応答性を最大化し、遅延をユーザーから「隠蔽」する先進的なテクニックを詳解します。

    本書では、局所的なアルゴリズムの高速化にとどまらず、「アーキテクチャによる遅延の根本削減」から「予測手法による遅延の隠蔽」までを、効果の大きいものから段階的に学べます。このような構成が本書の最大の強みであり、システムの限界を突破しようとするすべての開発者・エンジニアにとって、一歩先を照らす最善のバイブルとなるでしょう。

    ■章構成
    ◆第1部 基礎
    第1章 はじめに
    第2章 レイテンシーの計測とモデリング

    ◆第2部 データ
    第3章 コロケーション
    第4章 レプリケーション
    第5章 パーティショニング
    第6章 キャッシュ

    ◆第3部 計算処理
    第7章 処理の削減
    第8章 ウェイトフリー同期
    第9章 並行性の活用

    ◆第4部 レイテンシーの隠蔽
    第10章 非同期処理
    第11章 予測的手法

    ※本書は『Latency: Reduce delay in software systems』(Manning Publications)の翻訳書です。


  • 目次

    表紙
    免責・サンプル・正誤表について
    推薦の言葉
    本書におけるレイテンシーの原則
    まえがき
    謝辞
    本書について/対象読者/本書の構成:ロードマップ
    コードについて
    著者について
    第1部 [基礎]
    第1章 はじめに
    1.1 レイテンシーとは何か
    1.2 どうやってレイテンシーを計測するか
    1.3 なぜレイテンシーが重要なのか/1.3.1 ユーザー体験
    1.3.2 リアルタイムシステム/1.3.3 効率性
    1.4 レイテンシーではないもの
    1.5 レイテンシー対帯域幅
    1.6 レイテンシー対エネルギー
    まとめ
    第2章 レイテンシーの計測とモデリング
    2.1 レイテンシーの法則/2.1.1 リトルの法則
    2.1.2 アムダールの法則
    2.2 レイテンシー分布
    2.3 レイテンシーの一般的な原因
    2.3.1 物理/2.3.2 CPUとハードウェア
    2.3.3 仮想化
    2.3.4 オペレーティングシステム、ドライバー、ファームウェア
    2.3.5 マネージドなランタイム
    2.3.6 アプリケーション/2.4 レイテンシー合成
    2.5 レイテンシーの計測
    2.6 実践:ネットワークレイテンシーの計測
    2.6.1 ヒストグラムをプロットする
    2.6.2 eCDFを用いた可視化
    まとめ
    第2部 [データ]
    第3章 コロケーション
    3.1 なぜコロケーションが必要か
    3.2 ノード間レイテンシー
    3.2.1 地理的レイテンシーとラストマイルレイテンシー
    3.2.2 エッジコンピューティングとCDN
    3.3 ノード内レイテンシー/3.3.1 ネットワークスタック
    3.3.2 TCP/IP
    3.3.3 カーネルバイパスネットワーキング
    3.4 マルチコアアーキテクチャ
    3.5 実践:組み込みデータベースを備えたREST API
    まとめ
    第4章 レプリケーション
    4.1 なぜレプリケーションを行うのか
    4.2 可用性とスケーラビリティ
    4.3 整合性モデル/4.3.1 強整合性
    4.3.2 結果整合性
    4.3.3 その他の整合性モデル
    4.4 レプリケーション戦略
    4.4.1 シングルリーダーレプリケーション/4.4.2 マルチリーダーレプリケーション
    4.4.3 リーダーレスレプリケーション
    4.4.4 read-your-writes特性/4.4.5 ローカルファーストアプローチ
    4.5 非同期レプリケーションと同期レプリケーション
    4.6 ステートマシンレプリケーション
    4.7 ケーススタディ:Viewstamped Replication
    4.8 実践:キーバリューストアのレプリケーション
    まとめ
    第5章 パーティショニング
    5.1 なぜデータをパーティショニングするのか
    5.2 物理的なパーティショニング戦略/5.2.1 水平パーティショニング
    5.2.2 垂直パーティショニング
    5.2.3 ハイブリッドパーティショニング
    5.3 論理パーティショニング戦略
    5.3.1 機能パーティショニング/5.3.2 地理的パーティショニング
    5.3.3 ユーザーベースのパーティショニング
    5.3.4 時間ベースのパーティショニング/5.3.5 オーバーパーティショニング
    5.4 リクエストルーティング/5.4.1 直接ルーティング
    5.4.2 プロキシルーティング
    5.4.3 フォワードルーティング
    5.5 パーティションの不均衡/5.5.1 ホットパーティション
    5.5.2 ワークロードの偏り/5.6 実践:SQLiteによる水平パーティショニング
    まとめ
    第6章 キャッシュ
    6.1 なぜデータをキャッシュするのか
    6.2 キャッシュの概要
    6.3 キャッシュ戦略/6.3.1 キャッシュアサイドキャッシュ
    6.3.2 リードスルーキャッシュ
    6.3.3 ライトスルーキャッシュ
    6.3.4 ライトビハインドキャッシュ
    6.3.5 クライアントサイドキャッシュ/6.3.6 分散キャッシュ
    6.4 キャッシュコヒーレンス
    6.5 キャッシュヒット率
    6.6 キャッシュ置換/6.6.1 Least Recently Used(LRU)
    6.6.2 Least Frequently Used(LFU)
    6.6.3 先入れ先出し(FIFO)とSIEVE
    6.7 Time-to-live(TTL)
    6.8 マテリアライズドビュー
    6.9 メモ化/6.10 実践:Mokaを使用したアプリケーション内キャッシュ
    まとめ
    第3部 [計算処理]
    第7章 処理の削減
    7.1 処理の削減方法
    7.2 アルゴリズムの計算量
    7.3 シリアライゼーションとデシリアライゼーション
    7.4 メモリ管理/7.4.1 動的メモリ割り当て
    7.4.2 ガベージコレクション
    7.4.3 仮想メモリと物理メモリ
    7.4.4 デマンドページング
    7.4.5 メモリトポロジ
    7.5 オペレーティングシステムのオーバーヘッド/7.5.1 スケジュール遅延とコンテキストスイッチ
    7.5.2 バックグラウンドタスクと割り込み
    7.5.3 ネットワークスタック
    7.6 事前計算
    7.7 実践:Criterionを使ったベンチマーク
    まとめ
    第8章 ウェイトフリー同期
    8.1 排他制御
    8.1.1 ミューテックス
    8.1.2 リードライトロック/8.1.3 スピンロック
    8.2 排他制御に関する問題/8.2.1 非効率性
    8.2.2 優先度逆転
    8.2.3 コンボイ現象/8.2.4 デッドロック
    8.3 アトミック操作
    8.3.1 アトミック操作の種類
    8.3.2 スピンロックの構造
    8.4 メモリバリア
    8.4.1 メモリバリアの種類
    8.4.2 コンパイラバリア
    8.4.3 メモリアクセスの並べ替えの例
    8.5 ウェイトフリー同期
    8.5.1 進行条件
    8.5.2 コンセンサス数
    8.5.3 ウェイトフリーキュー
    8.5.4 ウェイトフリースタック/8.5.5 ウェイトフリー連結リスト
    8.6 実践:単一プロデューサー・単一コンシューマーキューの実装
    まとめ
    第9章 並行性の活用
    9.1 並行性と並列性
    9.2 並行処理モデル/9.2.1 スレッド
    9.2.2 ファイバー/9.2.3 コルーチン
    9.2.4 イベント駆動型並行処理
    9.2.5 フューチャーとプロミス
    9.2.6 アクターモデル
    9.3 並列処理/9.3.1 データ並列
    9.3.2 タスク並列
    9.4 トランザクション
    9.4.1 直列化可能性
    9.4.2 スナップショット分離
    9.4.3 データアノマリーと弱い分離レベル
    9.5 同時実行制御
    9.5.1 2フェーズロック/9.5.2 マルチバージョン同時実行制御
    9.6 実践:逐次実行と並行実行
    まとめ
    第4部 [レイテンシーの隠蔽]
    第10章 非同期処理
    10.1 基本/10.1.1 非同期処理と同期処理
    10.1.2 イベントループ
    10.1.3 課題
    10.2 非同期I/O /10.2.1 I/O多重化/10.2.2 リクエストバッチング
    10.2.3 リクエストヘッジング
    10.2.4 バッファー付きI/O/10.2.5 メモリマッピング
    10.3 処理の先送り/10.3.1 タスクスケジューリング
    10.3.2 優先度付きキュー/10.3.3 ワークスティーリング
    10.4 リソース管理/10.4.1 スレッドプール
    10.4.2 メモリプール/10.4.3 コネクションプール
    10.5 バックプレッシャーによる並行性の管理
    10.5.1 プロデューサーの制御/10.5.2 バッファリング/10.5.3 ドロップ処理とレートリミット
    10.6 エラー処理/10.6.1 部分的なエラー
    10.6.2 回復/10.6.3 タイムアウト処理とキャンセル処理/10.7 オブザーバビリティ
    10.7.1 トレーシング/10.7.2 メトリクス
    まとめ
    第11章 予測的手法
    11.1 予測的手法の概要
    11.2 プリフェッチ
    11.2.1 パターンに基づくプリフェッチ
    11.2.2 意味情報に基づくプリフェッチ
    11.3 楽観的更新/11.3.1 楽観的ビュー
    11.3.2 楽観的更新の同期
    11.3.3 整合性保証
    11.3.4 エラー処理とロールバック
    11.4 投機的実行
    11.4.1 増分計算
    11.4.2 並列的投機
    11.4.3 値の予測
    11.5 予測的リソース割り当て/11.5.1 オーバープロビジョニング/11.5.2 プリウォーミング
    まとめ
    付録A 関連資料/A.1 第1章
    A.2 第2章
    A.3 第3章/A.4 第4章
    A.5 第5章/A.6 第6章
    A.7 第7章/A.8 第8章
    A.9 第9章
    A.10 第10章/A.11 第11章
    訳者あとがき
    索引
    翻訳者プロフィール/STAFF LIST
    奥付

レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) の商品スペック

発行年月日 2026/11/17
Cコード 3055
出版社名 インプレス
他のインプレスの電子書籍を探す
紙の本のISBN-13 9784295026068
著者名 Pekka Enberg
設樂 洋爾
著述名 著者

    インプレス レイテンシー ソフトウェアシステムの応答性を高めるための設計・計測・最適化(インプレス) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!