ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

More Effective C++ 項目15 例外処理のコストを理解する

新訂版 More Effective C++ (AddisonーWesley professional co)

新訂版 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ブロックと例外仕様を使う。

例外は組み込み業界では使用禁止が多いような。。