diff options
-rwxr-xr-x | tools/performance_test/performance_test | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/tools/performance_test/performance_test b/tools/performance_test/performance_test index d4bd318..dadd5bc 100755 --- a/tools/performance_test/performance_test +++ b/tools/performance_test/performance_test @@ -1,14 +1,16 @@ #!/bin/bash # USAGE: ./performance_test <kit> <midimap> <midifile> +# This script needs JACK to be started or just starts it itself if it isn't. test_dir=$(dirname $0) cd $test_dir dg_path="../../drumgizmo" -dg_log_file="drumgizmo.log" sample_interval=.5 cpu_plot_file="cpu_plot" ram_plot_file="ram_plot" +cpu_data_file="cpu_data.dat" +ram_data_file="ram_data.dat" # check for right number of parameters if [[ $# != 3 ]] @@ -23,6 +25,17 @@ kit="$1" midimap="$2" midifile="$3" +# function to check for dependencies +function check_for_dep +{ + if ! command -v $1 >/dev/null 2>&1 + then + echo "ERROR: Cannot find $1. Maybe it isn't installed?" + echo "Exiting..." + exit + fi +} + # check for drumgizmo if ! [ -e $dg_path/drumgizmo ] then @@ -31,13 +44,9 @@ then exit fi -# check for gnuplot -if ! command -v gnuplot >/dev/null 2>&1 -then - echo "ERROR: Cannot find gnuplot. Maybe it isn't installed?" - echo "Exiting..." - exit -fi +# check for dependencies +check_for_dep gnuplot +check_for_dep top # check for the existence of the passed files if ! [ -e "$1" ] || ! [ -e "$2" ] || ! [ -e "$3" ] @@ -55,10 +64,13 @@ echo "============================" cpu_data="" ram_data="" data_count=0 +avg_cpu_usage=0 # log ram and cpu usage of process function logData { + pid=$1 + top_output="$(top -b -n 1 -p $pid | tail -n 1)" top_arr=($top_output) @@ -68,25 +80,22 @@ function logData cpu_data="${cpu_data}${data_count} ${cpu_usage}\n" ram_data="${ram_data}${data_count} ${ram_usage}\n" + avg_cpu_usage="$(ps -p $pid -o %cpu | tail -n 1)" + data_count=$((data_count+1)) } # gnuplot ram and cpu usage over time function plotData { - echo -e "$cpu_data" > cpu_data.dat - echo -e "$ram_data" > ram_data.dat + echo -e "$cpu_data" > $cpu_data_file + echo -e "$ram_data" > $ram_data_file gnuplot performance_test.gnuplot > /dev/null 2>&1 } -# delete possibly already existing log file -if [ -e $dg_log_file ] -then - rm $dg_log_file -fi - # start dg -$dg_path/./drumgizmo -i midifile -I file=$midifile,midimap=$midimap -o dummy $kit >> $dg_log_file & +echo $kit +$dg_path/./drumgizmo -i midifile -I file="$midifile",midimap="$midimap" -o jackaudio "$kit" & pid=$! # collect data while dg is running @@ -98,3 +107,15 @@ done # plot data plotData + +echo +echo "-------------------------------------------------------------------" +echo "The average CPU usage was: ${avg_cpu_usage}%" +echo "See the data files $cpu_data_file and $ram_data_file for details." +echo "They are nicely plotted in cpu_data.png and ram_data.png." +echo "-------------------------------------------------------------------" +echo + +echo "============================" +echo "Finished the performace test" +echo "============================" |