Skip to content

Instantly share code, notes, and snippets.

@pabsan-0
Last active August 10, 2022 12:00
Show Gist options
  • Save pabsan-0/6ff6db2bb94d9871c2270653ad34a9b8 to your computer and use it in GitHub Desktop.
Save pabsan-0/6ff6db2bb94d9871c2270653ad34a9b8 to your computer and use it in GitHub Desktop.
Parses the stderr from RidgeRun's Gst-Shark interlatency profiler
#! /usr/bin/bash
# This bash scripts takes the stderr from RidgeRun's Gst-Shark interlatency
# tracer and parses its output to build some tables averaging results.
#
# Install gst shark and wrap your pipeline as:
# $ GST_DEBUG="GST_TRACER:7" GST_TRACERS="interlatency" \
# gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink \
# 2> tracer.log
#
# Leave it running for an amount of time then run this script (log name hardcoded here)
# Sample output:
# v4l2src0_src v4l2src1_src v4l2src2_src v4l2src3_src v4l2src
# 0.071 ~ 0.055 0.068 ~ 0.056 0.069 ~ 0.091 0.072 ~ 0.054 0.070 ~ 0.066 :: m_src
# 0.088 ~ 0.038 0.089 ~ 0.049 0.093 ~ 0.093 0.091 ~ 0.035 0.090 ~ 0.058 :: nvinfer0_src
# 0.093 ~ 0.039 0.093 ~ 0.050 0.096 ~ 0.094 0.095 ~ 0.037 0.094 ~ 0.059 :: nvtracker0_src
# 0.109 ~ 0.041 0.109 ~ 0.050 0.111 ~ 0.093 0.112 ~ 0.040 0.110 ~ 0.060 :: nvmultistreamtiler0_src
# 0.111 ~ 0.040 0.110 ~ 0.050 0.113 ~ 0.093 0.113 ~ 0.040 0.112 ~ 0.060 :: nvdsosd0_src
# 0.128 ~ 0.045 0.127 ~ 0.053 0.129 ~ 0.095 0.130 ~ 0.045 0.129 ~ 0.063 :: valve-bboxes
# 0.111 ~ 0.040 0.111 ~ 0.050 0.113 ~ 0.093 0.113 ~ 0.040 0.112 ~ 0.060 :: valve-stream
# 0.112 ~ 0.040 0.111 ~ 0.050 0.113 ~ 0.093 0.114 ~ 0.039 0.113 ~ 0.060 :: valve-display
# 0.128 ~ 0.045 0.128 ~ 0.053 0.130 ~ 0.095 0.131 ~ 0.045 0.129 ~ 0.063 :: nvmsgbroker0_sink
# 0.112 ~ 0.040 0.111 ~ 0.050 0.113 ~ 0.093 0.114 ~ 0.039 0.113 ~ 0.060 :: fakesink0_sink
# Define sources as stated in logs
# Mind this will be grepped
sources=(
v4l2src0_src \
v4l2src1_src \
v4l2src2_src \
v4l2src3_src \
v4l2src \
)
# Define checkpoints as stated in logs
checkpoints=(
m_src \
nvinfer0_src \
nvtracker0_src \
nvmultistreamtiler0_src \
nvdsosd0_src \
valve-bboxes \
valve-stream \
valve-display \
nvmsgbroker0_sink \
fakesink0_sink \
)
# Print headers for result output
for SRC_HEADER in "${sources[@]}"
do printf "$SRC_HEADER "
done
echo
# Loop and fetch results
for CKP in "${checkpoints[@]}"
do
for SRC in "${sources[@]}"
do
# Mean and stddev for this combination
var=`grep $SRC tracer.log | grep $CKP | grep -o -P '(?<=time=\(string\)0:00:).*(?=;$)' | awk '{s+=$0; ss+=$0^2} END{printf "%.3f ~ %.3f", m=s/NR, sqrt(ss/NR-m^2)}'`
printf "$var "
done
printf " :: $CKP"
echo
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment