Add more useful performance measurements to dlog_cpu 08/258008/6
authorMateusz Majewski <m.majewski2@samsung.com>
Fri, 7 May 2021 10:41:27 +0000 (12:41 +0200)
committerMateusz Majewski <m.majewski2@samsung.com>
Tue, 25 May 2021 13:41:13 +0000 (15:41 +0200)
Change-Id: I72353a79666359daf15f5459e7af41284960f716

tests/dlog_cpu.in

index 9ba18c0..a5b5e24 100644 (file)
@@ -45,10 +45,55 @@ trap cleanup 0
 mkdir -p "$RUNTIME_FILTERS_DIR"
 mkdir -p "$WRITER_DIR"
 
-dlog_logger &
-LOGGER=$!
-sleep 1
-(while :; do dlogsend -c 1000 -b main -t DLOG_CPU_TEST1 hi; sleep 0.1; done) &
-TEST=$!
-sleep 10
-ps --no-headers --quick-pid $LOGGER --format %cpu
+# TODO: 2>&1 is a hack, but I don't see any other solution
+for LENGTH in 10 500; do
+       sleep 1
+       echo "LOG LATENCY ($LENGTH characters):"
+       echo
+       MESSAGE=$(printf '%0.s&' $(seq 1 $LENGTH)) # Print the '&' character $LENGTH times
+
+       kill $LOGGER
+       sleep 1
+       dlog_logger &
+       LOGGER=$!
+       sleep 1
+       /usr/libexec/libdlog/dlog_stdout_benchmark 0 100000 $MESSAGE libdlog 2>&1 &
+       TEST=$!
+       sleep 1
+       echo "cpu usage of logger:"
+       ps --no-headers --quick-pid $LOGGER --format %cpu
+       echo "cpu usage of client:"
+       ps --no-headers --quick-pid $TEST --format %cpu
+       wait $TEST
+       echo
+
+       kill $LOGGER
+       sleep 1
+       dlog_logger &
+       LOGGER=$!
+       sleep 1
+       dlog_redirect_stdout --outtag "DLOG_BENCHMARK" --nofallback -- /usr/libexec/libdlog/dlog_stdout_benchmark 0 100000 $MESSAGE stdout 2>&1 &
+       TEST=$!
+       sleep 1
+       echo "cpu usage of logger:"
+       ps --no-headers --quick-pid $LOGGER --format %cpu
+       echo "cpu usage of client:"
+       ps --no-headers --quick-pid $TEST --format %cpu
+       wait $TEST
+       echo
+
+       kill $LOGGER
+       sleep 1
+       dlog_logger &
+       LOGGER=$!
+       sleep 1
+       dlog_redirect_stdout --outtag "DLOG_BENCHMARK" --nofallback -- /usr/libexec/libdlog/dlog_stdout_benchmark 1 100000 $MESSAGE stdout 2>&1 &
+       TEST=$!
+       sleep 1
+       echo "cpu usage of logger:"
+       ps --no-headers --quick-pid $LOGGER --format %cpu
+       echo "cpu usage of client:"
+       ps --no-headers --quick-pid $TEST --format %cpu
+       wait $TEST
+       echo
+done