Skip to content

miyuki/eh-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contents

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.

Requirements

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.

Usage

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.

Results

The results are avaiable as IPython notebook.

References

  1. Technical Report on C++ Performance TR18015
  2. Itanium C++ ABI: Exception Handling
  3. System V Application Binary Interface. AMD64 Architecture Processor Supplement, v. 0.99.7
  4. DWARF Debugging Information Format. Version 4
  5. Ian Lance Tayolor's blog posts
  1. Exception Handling in LLVM

About

Benchmark of C++ exception handling routines

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages