[Xorp-cvs] SF.net SVN: xorp:[11632] trunk/xorp/libxipc/tests
bms_fbsd at users.sourceforge.net
bms_fbsd at users.sourceforge.net
Sat Nov 28 19:10:38 PST 2009
Revision: 11632
http://xorp.svn.sourceforge.net/xorp/?rev=11632&view=rev
Author: bms_fbsd
Date: 2009-11-29 03:10:37 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
Re-add the bench scripts for IPC with some changes.
'inproc' and 'udp' transports are no longer built by default.
Added Paths:
-----------
trunk/xorp/libxipc/tests/bench_ipc.awk
trunk/xorp/libxipc/tests/bench_ipc.sh
trunk/xorp/libxipc/tests/bench_ipc_gnuplot.sh
Added: trunk/xorp/libxipc/tests/bench_ipc.awk
===================================================================
--- trunk/xorp/libxipc/tests/bench_ipc.awk (rev 0)
+++ trunk/xorp/libxipc/tests/bench_ipc.awk 2009-11-29 03:10:37 UTC (rev 11632)
@@ -0,0 +1,52 @@
+#
+# $XORP$
+#
+
+#
+# An AWK script to process and print statistics of data collected
+# by script bench_ipc.sh
+#
+
+/^XrlAtoms/ {
+ if (n > 0)
+ dump_stats();
+
+ t = 0; # total
+ tsq = 0; # total of squares
+ n = 0; # number of readings
+ min = 10000000;
+ max = 0;
+ n_xrl = $5;
+}
+
+/^Received/ {
+ x = $10;
+ t = t + x;
+ tsq = tsq + x * x;
+ n++;
+ if (x > max)
+ max = x;
+ if (x < min)
+ min = x;
+}
+
+BEGIN {
+ print "# Column 0 XrlAtoms per Xrl";
+ print "# Column 1 Mean XRLs per sec";
+ print "# Column 2 Std dev of XRLs per sec";
+ print "# Column 3 Min XRLs per sec";
+ print "# Column 4 Max XRLs per sec";
+}
+
+END {
+ dump_stats()
+}
+
+function dump_stats() {
+ m = t / n;
+ msq = tsq / n;
+
+ sigma = (msq - m * m) ** 0.5;
+
+ print n_xrl, m, sigma, min, max;
+}
Added: trunk/xorp/libxipc/tests/bench_ipc.sh
===================================================================
--- trunk/xorp/libxipc/tests/bench_ipc.sh (rev 0)
+++ trunk/xorp/libxipc/tests/bench_ipc.sh 2009-11-29 03:10:37 UTC (rev 11632)
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#
+# $XORP$
+#
+
+#
+# A script to perform IPC performance measurements
+#
+
+# Conditionally set ${srcdir} if it wasn't assigned (e.g., by `gmake check`)
+if [ "X${srcdir}" = "X" ] ; then srcdir=`dirname $0` ; fi
+
+BINDIR=.
+
+${BINDIR}/xorp_finder &
+FINDER_PID=$!
+
+test_pf()
+{
+ local pfname=$1
+ local pfenv=$2
+ local pfcmd=$3
+ local rawfile=${pfname}.log
+ local i
+
+ echo "-------------------------------------"
+ echo "Collecting measurements for ${pfname}"
+ echo "-------------------------------------"
+
+ for i in 0 1 2 3 4 5 6 7 8 9 10 12 15 18 20 25; do
+ XORP_PF=${pfenv} ${BINDIR}/test_xrl_sender ${pfcmd} -n $i
+ done | tee ${rawfile}
+ outfile=${pfname}.dat
+ cat ${rawfile} | awk -f ${srcdir}/bench_ipc.awk > $outfile
+
+ echo "Output:"
+ echo " Raw data file = ${rawfile}"
+ echo " Processed data file = ${outfile}"
+}
+
+#test_pf "inproc" "i" "-m 0 -r"
+#test_pf "udp" "u" "-m 0 -r"
+test_pf "tcp" "t" "-m 0 -r"
+
+kill ${FINDER_PID}
Property changes on: trunk/xorp/libxipc/tests/bench_ipc.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/xorp/libxipc/tests/bench_ipc_gnuplot.sh
===================================================================
--- trunk/xorp/libxipc/tests/bench_ipc_gnuplot.sh (rev 0)
+++ trunk/xorp/libxipc/tests/bench_ipc_gnuplot.sh 2009-11-29 03:10:37 UTC (rev 11632)
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+#
+# $XORP$
+#
+
+#
+# A script to plot the IPC performance measurements results.
+#
+
+# Terminal and label fonts
+SET_TERM="set term post eps \"Times-Roman\" 23"
+FONT="Times-Roman, 23"
+SET_POINTSIZE="set pointsize 1.8"
+
+# Default setup
+XLABEL=""
+YlABEL=""
+SET_KEY="set key top right"
+
+
+post_process_eps() {
+# sed 's/BoundingBox: 50 50 410 302/BoundingBox: 60 60 315 290/g' $OFILE >$OFILE.tmp
+# mv $OFILE.tmp $OFILE
+}
+
+# Plot functions
+plot_eps() {
+gnuplot <<EOF
+$SET_TERM
+$SET_POINTSIZE
+set xlabel "$XLABEL" "$FONT"
+set ylabel "$YLABEL" "$FONT"
+set title "$TITLE" "$FONT"
+set xrange $XRANGE
+set yrange $YRANGE
+$SET_KEY
+set output "$OFILE"
+set nologscale xy
+set $LOGSCALE
+$PLOT
+EOF
+post_process_eps
+}
+
+
+# Filter input
+filter_input() {
+awk '{if ($1 == "#") { print $0 } else { print $1" "$2" "$3} }' $1 > $2
+}
+
+# Setup various parameters
+setup_vars() {
+
+filter_input $stat1.dat $stat1.dat.gnuplot
+filter_input $stat2.dat $stat2.dat.gnuplot
+filter_input $stat3.dat $stat3.dat.gnuplot
+
+IFILE1="$stat1.dat.gnuplot"
+IFILE2="$stat2.dat.gnuplot"
+IFILE3="$stat3.dat.gnuplot"
+
+# Parameters
+PAR_AVE1="using 1:2 t \"$NAME1\" w lp lt 1 lw 2 pt 2"
+PAR_BAR1="t \"\" w yerrorbars lt 1 lw 2 pt 2"
+PAR_AVE2="using 1:2 t \"$NAME2\" w lp lt 1 lw 2 pt 4"
+PAR_BAR2="t \"\" w yerrorbars lt 1 lw 2 pt 4"
+PAR_AVE3="using 1:2 t \"$NAME3\" w lp lt 1 lw 2 pt 6"
+PAR_BAR3="t \"\" w yerrorbars lt 1 lw 2 pt 6"
+
+}
+
+
+# Common setup
+XLABEL="Number of XRL arguments"
+LOGSCALE="nologscale xy"
+XRANGE="[*:*]"
+YRANGE="[*:*]"
+#SET_KEY="set key top right"
+PLOT="plot \"$IFILE1\" $PAR_AVE1, \"$IFILE1\" $PAR_BAR1, \"$IFILE2\" $PAR_AVE2, \"$IFILE2\" $PAR_BAR2, \"$IFILE3\" $PAR_AVE3, \"$IFILE3\" $PAR_BAR3"
+
+stat1="inproc"
+stat2="tcp"
+stat3="udp"
+NAME1="In-Process"
+NAME2="TCP"
+NAME3="UDP"
+YLABEL="Performance (XRLs/sec)"
+TITLE="XRL performance for various communication families"
+setup_vars
+OFILE="xrl_performance.eps"
+# Select with or without std. deviation
+#PLOT="plot \"$IFILE1\" $PAR_AVE1, \"$IFILE2\" $PAR_AVE2, \"$IFILE3\" $PAR_AVE3"
+PLOT="plot \"$IFILE1\" $PAR_AVE1, \"$IFILE1\" $PAR_BAR1, \"$IFILE2\" $PAR_AVE2, \"$IFILE2\" $PAR_BAR2, \"$IFILE3\" $PAR_AVE3, \"$IFILE3\" $PAR_BAR3"
+plot_eps
+
+exit 0
Property changes on: trunk/xorp/libxipc/tests/bench_ipc_gnuplot.sh
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Xorp-cvs
mailing list