Efficient C++ 12~16章 まとめ
Efficient C++ 12章から16章の簡単なまとめです。
12章 参照回数計測
次のいずれかに当てはまる場合、参照回数計測が有利となる。
・対象オブジェクトが大量にリソースを消費する。
・問題となるリソースの確保や解放による負荷が大きい
・共有度が高い。
・参照の生成あるいは削除の負荷が比較的小さい
13章 コーディングの最適化
同じ計算は何度も行わず、キャッシングする。
不必要となるかもしれない計算は後回しにする。(遅延評価)
柔軟性を優先しすぎないようにする。
メモリ管理に関する呼び出しは最小限にする。
キャッシュを有効活用するため、処理が連続するデータを近づける。
全体の20%の程度の、オーバヘッドとなる部分を優先的に高速化する。(80-20の法則)
14章 設計の最適化
設計単位でも、データのキャッシングや遅延評価を行う。
効率のよいデータ構造を採用する。
15章 スケーラビリティ(拡張性)
直列化コードを減らし、複数のスレッドで並列処理できるようにする。
共有を減らすよう心がける。必要のないロックを避ける。
16章 システムアーキテクチャの依存性
プロセッサがキャッシュを有効活用できるようにする。
分岐はできるだけ避ける。
コンテキストスイッチ(プロセスの切り替え)を避ける。