Stack unwinding Project repo for EECS 582 Fall 2020
We highly recommend following this blog post to help make your testing results more accurate.
sudo objcopy --remove-section .eh_frame --remove-section .eh_frame_hdr [binary]For benchmarking with YCSB, please check out ycsb.md.
- The
redis-serverbinary is the program to run Redis. When measuring executable sizes, this is the binary. - The
redis-cliprogram can be used as a command-line client. - Compile flags should be changed in
src/Makefile.
- Use
./configureto add compile flags echo "flush_all" | nc localhost 11211should work as your 'clear' command in the YCSB script.
mongo ycsb --eval "db.dropDatabase()"should drop the YCSB database for use in the YCSB script.- I just used the
install-mongodandinstall-mongotargets to get the server and CLI client, respectively; you shouldn't need to build any other targets.
- Follow this guide to build clang properly.
- Refer to Tanvir's "C++ systems and their benchmarks of performance evaluation" on how to build GCC from source.
- Before running
./configure, modify it to add the compile flags you need.
- Follow this guide to compile RocksDB
- Edit the compile flags by editing
./Makefile, and use thePREFIXto mark the installation directory. - Build only the static library via
make static_lib, as othermakecommands install other, unnecessary tools. - To better compare stack-unwinding performance impacts on RocksDB against other NoSQL database applications, we recommend using the YCSB benchmark for RocksDB as opposed to its own benchmarking program.
- Download and unzip vbench.
- In the top directory, run
export VBENCH_ROOT=$(pwd) - Run
./install-reference-ffmpeg.shfor vbench to download all the repositories necessary to build FFmpeg. - For each new build of FFmpeg, delete or rename the existing
./bin/ffmpeg, modify./ffmpeg_sources/ffmpeg/configureto add compile flags, and then re-run./install-reference-ffmpeg.sh - To create a benchmark, modify the "perform transcoding" section of
./code/reference.pyto include a for-loop and a filter for whichever video files (found in./crf0and./crf18) you would like to transcode. - Then, run the benchmark script with
python code/reference.py scenariowherescenariocan be any of the following:live,upload,platform,popular, orvod