6 ms·
> benchmarks have shown that exceptions are generally faster The blog post you linked to says "Immediately we see that once the stack depth grows above a certa
by irishjohnnie 6y ago
> benchmarks have shown that exceptions are generally faster
The blog post you linked to says "Immediately we see that once the stack depth grows above a certain size (here 200/3 = 66), exceptions are always faster. This is not very interesting, because call stacks are usually not this deep (enterprise Java notwithstanding). For lower depths there is a lot of noise, especially for GCC ..." So ... not exactly "generally faster".
Also, the test is only for Linux. The same test on Windows/VC++ will probably run a lot slower ... again not "generally faster"
- jcelerier 6y agoLook at all the results. Even before that exceptions are more often a win than a loss. > The same test on Windows/VC++ will probably run a lot slower ... By default on 32-bit, with SJLJ exceptions, that's likely. But on 64-bit windows the default exception handling (SEH) uses a similar mechanism than Linux and should have comparable performance.
- irishjohnnie 6y ago> But on 64-bit windows the default exception handling (SEH) uses a similar mechanism than Linux and should have comparable performance. AFAIK SEH in Windows calls RaiseException() which in turn causes a user/kernel mode transition, probes for exception/termination handlers, and vectored exception handlers depending on the severity. It's been a while but I'm not sure the code GCC generates in Linux is quite like this.
- irishjohnnie 6y agoI missed this in my previous reply ... > Look at all the results. Even before that exceptions are more often a win than a loss. The blog post you linked to effectively says "it depends"