#!/bin/bash # shellcheck disable=SC2016 # Expressions don't expand in single quotes... # shellcheck disable=SC1090 # Can't follow non-constant source... looptime=.020 printf -v looptime %0.6f "$looptime" shopt -s extglob cnthdr=${looptime%%*(0)} shopt -u extglob cnthdr=l/${cnthdr#0}s read -r exe < <(readlink /proc/$$/exe) looptime=${looptime/.} optime() { # Compute time per operation in musec. local string=00$(( ( $1 ) * 1000 / cnt / ${3:-1} )) printf -v "$2" '%.2f' ${string::-3}.${string: -3} printf ' - %s: %11s...\r' "${BASH_LINENO[0]}" "${!2}" >&2 } [[ "$*" == *"-q"* ]] || printf '%11s %11s %11s %11s %11s %11s %11s %11s %11s %-18s %s\n' \ "$cnthdr" '{0..999}' '3x{0..9}' readUt RE InLneStr IncInt \ AccessRt PrintF Version BuildDir declare -i cnt=0 # Count empty loop for $looptime. for ((sta=${EPOCHREALTIME/.};${EPOCHREALTIME/.}-sta"$tmpScript" . "$tmpScript" { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' : {0..9}{0..9}{0..9} ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) ass1dx3' ;} >"$tmpScript" . "$tmpScript" { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' read -r ut idl "$tmpScript" . "$tmpScript" { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' [[ $sta =~ ^[0-9]*\..*$ ]]; [[ $sta =~ ^[0-9]*\..*$ ]] [[ $sta =~ ^[0-9]*\..*$ ]]; [[ $sta =~ ^[0-9]*\..*$ ]] ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) re 4' ;} >"$tmpScript" . "$tmpScript" { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' : <<<"Hello world!"; : <<<"Hello world!"; : <<<"Hello world!" ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) instr 3' ;} >"$tmpScript" . "$tmpScript" # shellcheck disable=SC2034 # idl appears unused. declare -i inc=0; { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1 inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1;inc+=1 ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) intinc 20' ;} >"$tmpScript" . "$tmpScript" { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 printf -v inc '\''%s+%s'\'' $inc 1;printf -v inc '\''%s+%s'\'' $inc 1 ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) prtf 20' ;} >"$tmpScript" . "$tmpScript" # shellcheck disable=SC1004 # This backslash+linefeed is literal { echo sta="\${EPOCHREALTIME/.}";for ((i=cnt;i--;)){ echo ' : "$EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME" \ "$EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME" \ "$EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME" \ "$EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME" \ "$EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME $EPOCHREALTIME" ';};echo 'optime $((${EPOCHREALTIME/.}-sta )) art 10' ;} >"$tmpScript" . "$tmpScript" rm "$tmpScript" # shellcheck disable=SC2154 # referenced but not assigned (eyear ??) printf '%11d %11s %11s %11s %11s %11s %11s %11s %11s %-18s %s\n' \ "$cnt" "$ass1k" "$ass1dx3" "$readut" "$re" "$instr" "$intinc" "$prtf" \ "$art" "$BASH_VERSION" "${exe#$PWD/}"