X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fbenchmark%2Ftest_benchmark;h=6f0dd7b49851cc106f03884fbf367f97e991c565;hb=e2a245bb4294a9c9d477600fcb046d61a3ed39e5;hp=9cffcbc3e6e38cf0569eda77692d8e8428984471;hpb=57aff1c0cf6029088ea77d69ee7d5c83527c4cf1;p=deliverable%2Flttng-ust.git diff --git a/tests/benchmark/test_benchmark b/tests/benchmark/test_benchmark index 9cffcbc3..6f0dd7b4 100755 --- a/tests/benchmark/test_benchmark +++ b/tests/benchmark/test_benchmark @@ -6,7 +6,7 @@ source $TESTDIR/utils/tap.sh plan_tests 1 -: ${ITERS:=20} +: ${ITERS:=10} : ${NR_EVENTS:=7000000} : ${NR_CPUS:=1} @@ -25,12 +25,8 @@ trap signal_cleanup SIGTERM SIGINT CMD_NOTRACING="$TIME '$PROG_NOTRACING >/dev/null 2>&1'" CMD_TRACING="$TIME '$PROG_TRACING >/dev/null 2>&1'" -time_notrace=0 for i in $(seq $ITERS); do - if [[ $EUID -eq 0 ]]; then - echo 3 >/proc/sys/vm/drop_caches - fi - time_notrace="$time_notrace+$(sh -c "$CMD_NOTRACING")" + time_notrace[i]=$(sh -c "$CMD_NOTRACING") done @@ -39,12 +35,8 @@ lttng -q create --snapshot lttng -q enable-event -u -a lttng -q start -time_trace=0 for i in $(seq $ITERS); do - if [[ $EUID -eq 0 ]]; then - echo 3 >/proc/sys/vm/drop_caches - fi - time_trace="$time_trace+$(sh -c "$CMD_TRACING")" + time_trace[i]=$(sh -c "$CMD_TRACING") done lttng -q stop @@ -52,9 +44,27 @@ lttng -q destroy killall lttng-sessiond pass "Trace benchmark" -S_PER_EVENT=$(echo "( ($time_trace) - ($time_notrace) ) / $ITERS / $NR_EVENTS" | bc -l) -NS_PER_EVENT=$(echo "$S_PER_EVENT * 1000000000" | bc -l) + +avg_delta=0 +for i in $(seq $ITERS); do + delta[$i]=$(echo "( ((${time_trace[$i]}) - (${time_notrace[$i]})) / $NR_EVENTS)" | bc -l) + avg_delta=$(echo "(${avg_delta} + ${delta[$i]})" | bc -l) +done +avg_delta=$(echo "(${avg_delta} / $ITERS)" | bc -l) + +std_dev=0 +for i in $(seq $ITERS); do + dev[$i]=$(echo "(( (${delta[$i]}) - (${avg_delta}) ) ^ 2)" | bc -l) + std_dev=$(echo "( (${std_dev}) + (${dev[i]}) )" | bc -l) +done +std_dev=$(echo "( (${std_dev}) / $ITERS )" | bc -l) +std_dev=$(echo "(sqrt(${std_dev}))" | bc -l) + +NS_PER_EVENT=$(echo "($avg_delta * 1000000000)" | bc -l) # Remove fractions NS_PER_EVENT=${NS_PER_EVENT%%.*} -diag "Average tracing overhead per event is ${NS_PER_EVENT}ns" +STD_DEV_NS_PER_EVENT=$(echo "($std_dev * 1000000000)" | bc -l) +STD_DEV_NS_PER_EVENT=${STD_DEV_NS_PER_EVENT%%.*} + +diag "Average tracing overhead per event is ${NS_PER_EVENT}ns, std.dev.: ${STD_DEV_NS_PER_EVENT}ns"