タグ

2011年1月8日のブックマーク (1件)

  • 例外処理のオーバーヘッド

    「例外が発生しなければ例外コストなんて無いじゃん」 という僕の意見が勉強会で数名の方からエライ否定的に言われたので非常に気分が悪いw C++のみだけど検証させていただきました。 尚、使用したコンパイラはVC9でコンパイルオプションは cl /Ox /EHsc /Fa です。 まず何かの処理をNULLチェックで書いてみます。 void null_check() { void*    p = func1(); if(p) { p = func2(p); if(p) { p = func3(p); } } } これを例外処理で書いたコードは以下のものです。 void with_try_catch() { try { void*    p = func1(); p = func2(p); p = func3(p); } catch(...) { exception_sequence(); } }