diff options
Diffstat (limited to 'contrib/bc/scripts/benchmark.sh')
-rwxr-xr-x | contrib/bc/scripts/benchmark.sh | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/contrib/bc/scripts/benchmark.sh b/contrib/bc/scripts/benchmark.sh deleted file mode 100755 index 35f92452ce78..000000000000 --- a/contrib/bc/scripts/benchmark.sh +++ /dev/null @@ -1,159 +0,0 @@ -#! /bin/sh -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2018-2021 Gavin D. Howard and contributors. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -# This script depends on the GNU time utility, but I am okay with that because -# this script is only for maintainers. - -# Just print the usage and exit with an error. -usage() { - printf 'usage: %s [-n<runs>] [-p<pause>] dir benchmark...\n' "$0" 1>&2 - printf ' -n runs is how many runs to run the benchmark, default 10.\n' - printf ' -p pause is how many seconds to pause before running the benchmarks.\n' - printf '\n' - printf 'The fields are put in this order:\n' - printf '1. Elapsed Time\n' - printf '2. System Time\n' - printf '3. User Time\n' - printf '4. Max RSS\n' - printf '5. Average RSS\n' - printf '6. Average Total Memory Use\n' - printf '7. Average Unshared Data\n' - printf '8. Average Unshared Stack\n' - printf '9. Average Shared Text\n' - printf '10. Major Page Faults\n' - printf '11. Minor Page Faults\n' - printf '12. Swaps\n' - printf '13. Involuntary Context Switches\n' - printf '14. Voluntary Context Switches\n' - printf '15. Inputs\n' - printf '16. Outputs\n' - printf '17. Signals Delivered\n' - exit 1 -} - -script="$0" -scriptdir=$(dirname "$script") - -runs=10 -pause=0 - -# Process command-line arguments. -while getopts "n:p:" opt; do - - case "$opt" in - n) runs="$OPTARG" ;; - p) pause="$OPTARG" ;; - ?) usage "Invalid option: $opt" ;; - esac - -done - -while [ "$#" -gt 0 ] && [ "$OPTIND" -gt 1 ]; do - - OPTIND=$(bin/bc -e "$OPTIND - 1") - shift - -done - -if [ "$#" -lt 2 ]; then - usage -fi - -cd "$scriptdir/.." - -d="$1" -shift - -benchmarks="" - -# Create the list of benchmarks from the arguments. -while [ "$#" -gt 0 ]; do - - if [ "$benchmarks" = "" ]; then - benchmarks="$1" - else - benchmarks="$benchmarks $1" - fi - - shift -done - -files="" - -# Create the list of files from the benchmarks. -for b in $benchmarks; do - - f=$(printf "benchmarks/%s/%s.txt" "$d" "$b") - - if [ "$files" = "" ]; then - files="$f" - else - files="$files $f" - fi - -done - -if [ "$d" = "bc" ]; then - opts="-lq" - halt="halt" -else - opts="-x" - halt="q" -fi - -# Generate all of the benchmarks. -for b in $benchmarks; do - - if [ ! -f "./benchmarks/$d/$b.txt" ]; then - printf 'Benchmarking generation of benchmarks/%s/%s.txt...\n' "$d" "$b" >&2 - printf '%s\n' "$halt" | /usr/bin/time -v bin/$d $opts "./benchmarks/$d/$b.$d" \ - > "./benchmarks/$d/$b.txt" - fi -done - -# We use this format to make things easier to use with ministat. -format="%e %S %U %M %t %K %D %p %X %F %R %W %c %w %I %O %k" - -printf 'Benchmarking %s...\n' "$files" >&2 - -if [ "$pause" -gt 0 ]; then - sleep "$pause" -fi - -i=0 - -# Run the benchmarks as many times as told to. -while [ "$i" -lt "$runs" ]; do - - printf '%s\n' "$halt" | /usr/bin/time -f "$format" bin/$d $opts $files 2>&1 > /dev/null - - # Might as well use the existing bc. - i=$(printf '%s + 1\n' "$i" | bin/bc) - -done |