top | item 34090723

(no title)

cgrealy | 3 years ago

This was a fairly common position when I was programming C++ over a decade ago.

Performance critical code like game engines, etc used to avoid exceptions like the plague. Not entirely surprised to find that’s still the case.

discuss

order

groestl|3 years ago

99.99% (maybe even more) of game engines is not performance critical code though. I guess the reason was a different one: for exceptions to work you need a sane memory model. It's very hard to write exception safe code in C++. A garbage collector is very helpful to accomplish that, and _this_ is the thing that's problematic, because it interferes with the 0.01% performance critical inner loops.

Vogtinator|3 years ago

> It's very hard to write exception safe code in C++.

How? As long as RAII is used it's basically for free.

pclmulqdq|3 years ago

With the 32-bit x86 ABI, exceptions hurt any time your code had the possibility of throwing one. The 64-bit ABI fixed that, and is REALLY slow when an exception shows up, but does not cost anything in the happy path.