Skip to content

Quick start

Oleksii Oleksenko edited this page Feb 23, 2017 · 1 revision

You can try Fex by running a simple experiment: measure overheads of AddressSanitizer over native on a set of benchmarks in Phoenix benchmark suite.

Preparation

We will do all measurements inside a Docker container. If don't have an image yet, you have to build it first:

make

Run a container and enter it (another shell will appear):

make run

Inside the container, install Phoenix dependencies:

./fex.py install -n phoenix

Afterwards, everything should be ready for the experiment.

Running an experiment

Our experiment can be started with:

./fex.py run -n phoenix -t gcc_native gcc_asan -r 5

We've used the following configuration:

  • -n phoenix: use Phoenix benchmark suite
  • -t gcc_native gcc_asan: use GCC for compilation and build two versions---non-protected (default compilation flags flags) and protected by ASan
  • -r 5: to reduce influence of external factors, we will run everything 5 times

The results of the experiment will be stored under /data/results/phoenix/.

Building plots

Fex is packaged with configuration for building barplots. We will use it to plot our results:

./fex.py plot -n phoenix -t perf -f /data/results/phoenix

The plot will be stored in the same directory.

You can access it from outside the container by going to data_/results/phoenix in your current project directory (/data/ is mounted into your host file system as your_project_path/data_/).

Clone this wiki locally