mirror of
https://github.com/aykhans/sarin.git
synced 2026-02-28 14:59:14 +00:00
66 lines
1.5 KiB
Bash
Executable File
66 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
RUNS=20
|
|
CMD="go run ./cmd/cli -U http://localhost:80 -r 1_000_000 -c 100"
|
|
|
|
declare -a times_default
|
|
declare -a times_gogcoff
|
|
|
|
echo "===== Benchmark: default GC ====="
|
|
for i in $(seq 1 $RUNS); do
|
|
echo "Run $i/$RUNS ..."
|
|
start=$(date +%s%N)
|
|
$CMD
|
|
end=$(date +%s%N)
|
|
elapsed=$(( (end - start) / 1000000 )) # milliseconds
|
|
times_default+=("$elapsed")
|
|
echo " -> ${elapsed} ms"
|
|
done
|
|
|
|
echo ""
|
|
echo "===== Benchmark: GOGC=off ====="
|
|
for i in $(seq 1 $RUNS); do
|
|
echo "Run $i/$RUNS ..."
|
|
start=$(date +%s%N)
|
|
GOGC=off $CMD
|
|
end=$(date +%s%N)
|
|
elapsed=$(( (end - start) / 1000000 ))
|
|
times_gogcoff+=("$elapsed")
|
|
echo " -> ${elapsed} ms"
|
|
done
|
|
|
|
echo ""
|
|
echo "============================================"
|
|
echo " RESULTS"
|
|
echo "============================================"
|
|
|
|
echo ""
|
|
echo "--- Default GC ---"
|
|
sum=0
|
|
for i in $(seq 0 $((RUNS - 1))); do
|
|
echo " Run $((i + 1)): ${times_default[$i]} ms"
|
|
sum=$((sum + times_default[$i]))
|
|
done
|
|
avg_default=$((sum / RUNS))
|
|
echo " Average: ${avg_default} ms"
|
|
|
|
echo ""
|
|
echo "--- GOGC=off ---"
|
|
sum=0
|
|
for i in $(seq 0 $((RUNS - 1))); do
|
|
echo " Run $((i + 1)): ${times_gogcoff[$i]} ms"
|
|
sum=$((sum + times_gogcoff[$i]))
|
|
done
|
|
avg_gogcoff=$((sum / RUNS))
|
|
echo " Average: ${avg_gogcoff} ms"
|
|
|
|
echo ""
|
|
echo "--- Comparison ---"
|
|
if [ "$avg_default" -gt 0 ]; then
|
|
diff=$((avg_default - avg_gogcoff))
|
|
echo " Difference: ${diff} ms (positive = GOGC=off is faster)"
|
|
fi
|
|
echo "============================================"
|