mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
scripts: Plot memory benchmarks using gnuplot
Now that we have memory usage benchmarks collected at our disposal, introduce a gnuplot script to plot the newest version. To avoid scaling issues, memory is plotted in a "double y axis" form, with VM usage on the left, and dirty RSS memory usage on the right. Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
This commit is contained in:
parent
c0f2e7d36a
commit
4bda712ee1
3 changed files with 66 additions and 0 deletions
|
|
@ -28,6 +28,7 @@ EXTRA_DIST = \
|
|||
PROTOCOL \
|
||||
README \
|
||||
scripts/benchmark_memory_usage.sh \
|
||||
scripts/plot_memory_usage.gp \
|
||||
scripts/benchmarks/README \
|
||||
todo \
|
||||
.gitignore \
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ PA_PLAY_PROCESS_NAME="paplay"
|
|||
|
||||
SCRIPTS_DIR=${PA_HOME}/scripts
|
||||
BENCHMARKS_DIR=${SCRIPTS_DIR}/benchmarks
|
||||
GNUPLOT_SCRIPT=${SCRIPTS_DIR}/plot_memory_usage.gp
|
||||
OUTPUT_FILE=${BENCHMARKS_DIR}/memory-usage-`date -Iseconds`.txt
|
||||
SYMLINK_LATEST_OUTPUT_FILE=${BENCHMARKS_DIR}/memory-usage-LATEST.txt
|
||||
|
||||
|
|
@ -129,3 +130,4 @@ ln -s $OUTPUT_FILE $SYMLINK_LATEST_OUTPUT_FILE
|
|||
|
||||
msg "Sampling daemon memory usage done!"
|
||||
msg "Check the results at $SYMLINK_LATEST_OUTPUT_FILE"
|
||||
msg "Plot these results using 'gnuplot $GNUPLOT_SCRIPT'"
|
||||
|
|
|
|||
63
scripts/plot_memory_usage.gp
Normal file
63
scripts/plot_memory_usage.gp
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
# This file is part of PulseAudio.
|
||||
#
|
||||
# Copyright 2015 Ahmed S. Darwish <darwish.07@gmail.com>
|
||||
#
|
||||
# PulseAudio is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# PulseAudio is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# PulseAudio memory usage plotting script
|
||||
#
|
||||
# Before invocation, generate necessary data by running the
|
||||
# 'benchmark_memory_usage.sh' bash script. Afterwards, you can plot
|
||||
# such data by running:
|
||||
#
|
||||
# gnuplot plot_memory_usage.gp
|
||||
#
|
||||
# Note! To avoid scaling issues, memory is plotted in a "double y axis"
|
||||
# form, with VM usage on the left, and dirty RSS memory usage on the
|
||||
# right. The scales are different.
|
||||
#
|
||||
|
||||
# Print our user messages to the stdout
|
||||
set print "-"
|
||||
|
||||
benchDir = system('dirname ' .ARG0) .'/benchmarks/'
|
||||
inputFile = benchDir ."memory-usage-LATEST.txt"
|
||||
outputFile = benchDir ."pulse-memory-usage.png"
|
||||
|
||||
set title "PulseAudio Memory Usage Over Time"
|
||||
set xlabel "Number of councurrent 'paplay' clients"
|
||||
|
||||
set ylabel "Virtual memory consumption (GiB)"
|
||||
set y2label "Dirty RSS consumption (MiB)"
|
||||
set ytics nomirror
|
||||
set y2tics
|
||||
|
||||
# Finer granulrity for x-axis ticks ...
|
||||
set xtics 1,1
|
||||
set grid
|
||||
|
||||
# Use Cairo's PNG backend. This produce images which are way
|
||||
# better-rendered than the barebone classical png backend
|
||||
set terminal pngcairo enhanced size 1000,768 font 'Verdana,10'
|
||||
set output outputFile
|
||||
|
||||
print "Plotting data from input file: ", inputFile
|
||||
print "..."
|
||||
|
||||
plot inputFile using 1:($2/1024/1024) title "VmSize" axes x1y1 with linespoints, \
|
||||
inputFile using 1:($3/1024) title "Dirty RSS" axes x1y2 with linespoints
|
||||
|
||||
print "Done! Check our performance at: ", outputFile
|
||||
Loading…
Add table
Add a link
Reference in a new issue