This repository contains several synthetic benchmarks of exception handling routines, such as exception allocation and throwing, stack unwinding and handler search.
It also has some test cases which can be used to profile the mentioned routines.
The code is written in C++14 and Objective C and requies GCC 4.9 or later to compile it.
The benchmarks use PAPI library to read
the performance counters. It is available in major Linux distros (for example,
libpapi-dev
package in Debian)
CMake 3.0 or later is required to build the tests.
Run make_all.sh to compile and bench.sh to benchmark.
The result will be output to result
directory.
Rename config.sh.example into config.sh
and modify to set
custom path to GCC.
The results are avaiable as IPython notebook.
- Technical Report on C++ Performance TR18015
- Itanium C++ ABI: Exception Handling
- System V Application Binary Interface. AMD64 Architecture Processor Supplement, v. 0.99.7
- DWARF Debugging Information Format. Version 4
- Ian Lance Tayolor's blog posts