More Effective C++ 項目15 例外処理のコストを理解する
新訂版 More Effective C++ (AddisonーWesley professional co)
- 作者: スコット・メイヤーズ,安村通晃,伊賀聡一郎,飯田朱美,永田周一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2007/06/29
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 129回
- この商品を含むブログ (43件) を見る
項目15 例外処理のコストを理解する
例外を扱う場合は、かなりのコストを負担しなければならない。
例外が発生したとき、破棄が必要なオブジェクトを識別できなければならないし、catch節が扱う例外の型を追跡しなければならない。
例外仕様が満たされているかどうか、適切なcatchブロックはどこか、などを判断できなければならない。
try、throw、catchを使わなくても、コストを負担している
どのオブジェクトが完全に生成されたかを追跡するため、データ構造とその更新処理が必要だが、比較的小さいコスト。
tryブロック
荒い見積もりでは、tryブロックは1つでも使うと、5%-10%くらいコードサイズが増加するらしい。
まとめ
例外処理にかかるコストを最小限にするために、可能であれば例外をサポートせずにコンパイルしてみること。 本当に必要なところだけ、tryブロックと例外仕様を使う。
例外は組み込み業界では使用禁止が多いような。。