[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