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