Performance when exceptions are not thrown (C++)

后端 未结 2 1214
花落未央
花落未央 2021-01-04 09:40

I have already read a lot about C++ exceptions and what i see, that especially exceptions performance is a hard topic. I even tried to look under the g++\'s hood to see how

2条回答
  •  迷失自我
    2021-01-04 09:55

    Here's a detailed review of the cost of the exception handling when no exceptions are actually thrown:

    http://www.nwcpp.org/old/Meetings/2006/10.html

    In general, in every function that uses exception handling (has either try/catch blocks or automatic objects with destructor) - the compiler generates some extra prolog/epilog code to deal with the expcetion registration record.

    Plus after every automatic object is constructed and destructed - a few more assembler commands are added (adjust the exception registration record).

    In addition some optimizations may be disabled. Especially this is the case when you work in the so-called "asynchronous" exception handling model.

提交回复
热议问题