15項 例外処理のコストを理解する

例外処理のコストを理解する



コンパイラは例外をサポートするとき、プログラムの大きさが一般に5~10%ほど大きくなり、スピードも同じぐらい遅くなるらしいです。
この制約は、try,throw,catchを使わなくても、例外をサポートているだけで起きるそうです。

例外処理をサポートするほとんどのコンパイラでは、プログラムがtry,throw,catchを使用してない時、例外サポートを含めないようにすることができるらしいです。
Visual C++でも、/EH (例外処理モデル)を指定することで例外のサポートを変えられるようです。



例外をサポートし、tryブロックを1つでも使うと、例外をサポートした時の5~10%ほど肥大したプログラムが、更に5~10%ほど大きくなるそうです。