1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
#!/usr/bin/env bash
# make-benchmarks - Scan build submission instructions for Unix and Linux.
# Written and placed in public domain by Jeffrey Walton and Uri Blumenthal.
# Copyright assigned to Crypto++ project.
#
# The following builds the benchmarks under 5.6.2, 5.6.4 and Master. The results can then be
# compared to ensure an speed penalty is not inadvertently taken. Crypto++ 5.6.2 is significant
# because its the last version Wei worked on before turning the library over to the community.
###############################################################################
# Set to suite your taste. Speed is in GiHz
if [[ -z "$CPU_FREQ" ]]; then
if [[ ! -z "CRYPTOPP_CPU_SPEED" ]]; then
CPU_FREQ="$CRYPTOPP_CPU_SPEED"
else
CPU_FREQ=2.8
fi
fi
echo "***************************************************"
echo "Using CPU frequency of $CPU_FREQ GiHz."
echo "Please modify this script if its not correct"
echo
###############################################################################
current=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
git fetch --all &>/dev/null &>/dev/null
if [[ "$?" -ne "0" ]]; then
echo "$PWD does not appear to be a Git repository"
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
fi
###############################################################################
# Try to find a fast option
OPT=
if [[ -z "$OPT" ]]; then
rm -f "$TMP/adhoc.exe" &>/dev/null
"$CXX" -DCRYPTOPP_ADHOC_MAIN -O3 adhoc.cpp -o "$TMP/adhoc.exe" &>/dev/null
if [[ ("$?" -eq "0") ]]; then
OPT=-O3
fi
fi
if [[ -z "$OPT" ]]; then
rm -f "$TMP/adhoc.exe" &>/dev/null
"$CXX" -DCRYPTOPP_ADHOC_MAIN -xO3 adhoc.cpp -o "$TMP/adhoc.exe" &>/dev/null
if [[ ("$?" -eq "0") ]]; then
OPT=-xO3
fi
fi
if [[ -z "$OPT" ]]; then
rm -f "$TMP/adhoc.exe" &>/dev/null
"$CXX" -DCRYPTOPP_ADHOC_MAIN -O2 adhoc.cpp -o "$TMP/adhoc.exe" &>/dev/null
if [[ ("$?" -eq "0") ]]; then
OPT=-O2
fi
fi
if [[ -z "$OPT" ]]; then
rm -f "$TMP/adhoc.exe" &>/dev/null
"$CXX" -DCRYPTOPP_ADHOC_MAIN -xO2 adhoc.cpp -o "$TMP/adhoc.exe" &>/dev/null
if [[ ("$?" -eq "0") ]]; then
OPT=-xO2
fi
fi
if [[ -z "$OPT" ]]; then
rm -f "$TMP/adhoc.exe" &>/dev/null
"$CXX" -DCRYPTOPP_ADHOC_MAIN -O adhoc.cpp -o "$TMP/adhoc.exe" &>/dev/null
if [[ ("$?" -eq "0") ]]; then
OPT=-O
fi
fi
##################################################################
echo "***************************************************"
echo "**************** Crypto++ 5.6.2 *******************"
echo "***************************************************"
echo
git checkout -f CRYPTOPP_5_6_2 &>/dev/null
if [[ "$?" -ne "0" ]]; then
echo "git checkout CRYPTOPP_5_6_2 failed"
else
rm -f *.o benchmarks.html benchmarks-562.html &>/dev/null
CXXFLAGS="-DNDEBUG $OPT" make
if [[ "$?" -eq "0" ]]; then
echo "Running benchmarks for Crypto++ 5.6.2"
./cryptest.exe b 3 "$CPU_FREQ" > benchmarks-562.html
if [[ "$?" -ne "0" ]]; then
rm -rf benchmarks-562.html &>/dev/null
echo "Failed to create benchmarks for Crypto++ 5.6.2"
fi
else
echo "Failed to make benchmarks for Crypto++ 5.6.2"
fi
fi
##################################################################
echo "***************************************************"
echo "**************** Crypto++ 5.6.4 *******************"
echo "***************************************************"
echo
git checkout -f CRYPTOPP_5_6_4 &>/dev/null
if [[ "$?" -ne "0" ]]; then
echo "git checkout CRYPTOPP_5_6_4 failed"
else
rm -f *.o benchmarks.html benchmarks-564.html &>/dev/null
CXXFLAGS="-DNDEBUG $OPT" make
if [[ "$?" -eq "0" ]]; then
echo "Running benchmarks for Crypto++ 5.6.4"
./cryptest.exe b 3 "$CPU_FREQ" > benchmarks-564.html
if [[ "$?" -ne "0" ]]; then
rm -rf benchmarks-564.html &>/dev/null
echo "Failed to create benchmarks for Crypto++ 5.6.4"
fi
else
echo "Failed to make benchmarks for Crypto++ 5.6.4"
fi
fi
##################################################################
echo "***************************************************"
echo "*************** Crypto++ Master *******************"
echo "***************************************************"
echo
git checkout -f master &>/dev/null
if [[ "$?" -ne "0" ]]; then
echo "git checkout master failed"
else
rm -f *.o benchmarks.html benchmarks-master.html &>/dev/null
CXXFLAGS="-DNDEBUG $OPT" make
if [[ "$?" -eq "0" ]]; then
echo "Running benchmarks for Crypto++ Master"
./cryptest.exe b 3 "$CPU_FREQ" > benchmarks-master.html
if [[ "$?" -ne "0" ]]; then
rm -rf benchmarks-master.html &>/dev/null
echo "Failed to create benchmarks for Crypto++ Master"
fi
else
echo "Failed to make benchmarks for Crypto++ Master"
fi
fi
##################################################################
if [[ ! -z "$current" ]]; then
git checkout -f "$current"
fi
[[ "$0" = "$BASH_SOURCE" ]] && exit 0 || return 0
|