Last active
August 10, 2022 12:00
-
-
Save pabsan-0/6ff6db2bb94d9871c2270653ad34a9b8 to your computer and use it in GitHub Desktop.
Parses the stderr from RidgeRun's Gst-Shark interlatency profiler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /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