LDP/LDP/guide/docbook/abs-guide/test-execution-time.sh

70 lines
1.1 KiB
Bash

#!/bin/bash
# test-execution-time.sh
# Example by Erik Brandsberg, for testing execution time
#+ of certain operations.
# Referenced in the "Optimizations" section of "Miscellany" chapter.
count=50000
echo "Math tests"
echo "Math via \$(( ))"
time for (( i=0; i< $count; i++))
do
result=$(( $i%2 ))
done
echo "Math via *expr*:"
time for (( i=0; i< $count; i++))
do
result=`expr "$i%2"`
done
echo "Math via *let*:"
time for (( i=0; i< $count; i++))
do
let result=$i%2
done
echo
echo "Conditional testing tests"
echo "Test via case:"
time for (( i=0; i< $count; i++))
do
case $(( $i%2 )) in
0) : ;;
1) : ;;
esac
done
echo "Test with if [], no quotes:"
time for (( i=0; i< $count; i++))
do
if [ $(( $i%2 )) = 0 ]; then
:
else
:
fi
done
echo "Test with if [], quotes:"
time for (( i=0; i< $count; i++))
do
if [ "$(( $i%2 ))" = "0" ]; then
:
else
:
fi
done
echo "Test with if [], using -eq:"
time for (( i=0; i< $count; i++))
do
if [ $(( $i%2 )) -eq 0 ]; then
:
else
:
fi
done
exit $?