set -e -u
CARGO_PROFILE_BENCH_DEBUG=true CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release --bench benchmark
FILE_TO_RUN=`find ../../target/release/deps -type f -perm u=rwx | grep benchmark | grep -v iai`
FILTER=$1
echo "Running benchmark with filter $FILTER"
AS_ROOT=0
FLAMEGRAPH=flamegraph
if [ `uname` = Darwin ]; then
FLAMEGRAPH="sudo flamegraph"
AS_ROOT=1
fi
$FLAMEGRAPH \
$FILE_TO_RUN \
--bench \
--profile-time 20 \
"$FILTER"
if [ $AS_ROOT = 1 ]; then
sudo chown $USER flamegraph.svg
fi
cp flamegraph.svg flamegraph-$FILTER.svg
if [ `which open` &> /dev/null ]; then
open flamegraph-$FILTER.svg
fi