r4745 - developers/werner/wlan-perf

werner at docs.openmoko.org werner at docs.openmoko.org
Mon Nov 3 02:50:44 CET 2008


Author: werner
Date: 2008-11-03 02:50:44 +0100 (Mon, 03 Nov 2008)
New Revision: 4745

Modified:
   developers/werner/wlan-perf/report
Log:
- don't pass around bytes and time separate, use the rate instead
- print "*1000B" instead of ambiguous "kB"
- compute standard deviation in new function std_dev



Modified: developers/werner/wlan-perf/report
===================================================================
--- developers/werner/wlan-perf/report	2008-11-03 01:48:41 UTC (rev 4744)
+++ developers/werner/wlan-perf/report	2008-11-03 01:50:44 UTC (rev 4745)
@@ -3,13 +3,12 @@
 
 sub extract_ttcp()
 {
-    local ($name, *bytes, *time, *csw) = @_;
+    local ($name, *rate, *csw) = @_;
 
     open(F, $name) || die "$name: $!";
     while (<F>) {
 	if (/ (\d+) bytes in (\S+) real seconds/) {
-	    push(@bytes, $1);
-	    push(@time, $2);
+	    push(@rate, $1/$2);
 	}
 	if (/ (\d+)\+(\d+)csw/) {
 	    push(@csw, $1+$2);
@@ -29,41 +28,48 @@
 
 sub ttcp_set()
 {
-    local (*bytes, *time, *csw, $i) = @_;
+    local (*rate, *csw, $i) = @_;
 
-    $bytes += $bytes[$i];
-    $time += $time[$i];
+    $rate += $rate[$i];
     $csw += $csw[$i];
-    return &ttcp_format($bytes[$i]/$time[$i], $csw[$i]);
+    return &ttcp_format($rate[$i], $csw[$i]);
 }
 
 
+sub std_dev()
+{
+    local ($sq_sum, $avg, $n) = @_;
+
+    return sqrt($sq_sum/$n-$avg*$avg);
+}
+
+
 sub report_ttcp()
 {
     local ($label_tx, $label_rx, $tx, $rx) = @_;
-    local (@tx_bytes, @tx_time, @tx_csw);
-    local (@rx_bytes, @rx_time, @rx_csw);
-    local ($tx_bytes, $tx_time, $tx_csw);
-    local ($rx_bytes, $rx_time, $rx_csw);
+    local (@tx_rate, @tx_csw);
+    local (@rx_rate, @rx_csw);
+    local ($tx_rate, $tx_csw);
+    local ($rx_rate, $rx_csw);
     local ($gap) = " " x 4;
 
     print "---- ",
        $label_tx, " ", "-" x (15-length $label_tx), $gap,
        $label_rx, " ", "-" x (15-length $label_rx), "\n";
     print " " x 5,
-      sprintf("%-8s %-7s", "kB/s", "ctx_sw"), $gap,
-      sprintf("%-8s %-7s", "kB/s", "ctx_sw"), "\n";
+      sprintf("%-8s %-7s", "*1000B/s", "ctx_sw"), $gap,
+      sprintf("%-8s %-7s", "*1000B/s", "ctx_sw"), "\n";
 
-    &extract_ttcp($tx, *tx_bytes, *tx_time, *tx_csw);
-    &extract_ttcp($rx, *rx_bytes, *rx_time, *rx_csw);
-    for ($i = 0; $i != @tx_bytes; $i++) {
+    &extract_ttcp($tx, *tx_rate, *tx_csw);
+    &extract_ttcp($rx, *rx_rate, *rx_csw);
+    for ($i = 0; $i != @tx_rate; $i++) {
 	print sprintf("%3d: ", $i+1),
-	  &ttcp_set(*tx_bytes, *tx_time, *tx_csw, $i), $gap,
-	  &ttcp_set(*rx_bytes, *rx_time, *rx_csw, $i), "\n";
+	  &ttcp_set(*tx_rate, *tx_csw, $i), $gap,
+	  &ttcp_set(*rx_rate, *rx_csw, $i), "\n";
     }
     print "AVG: ",
-      &ttcp_format($tx_bytes/$tx_time, $tx_csw/@tx_bytes), $gap,
-      &ttcp_format($rx_bytes/$rx_time, $rx_csw/@tx_bytes), "\n";
+      &ttcp_format($tx_rate/@tx_rate, $tx_csw/@tx_rate), $gap,
+      &ttcp_format($rx_rate/@tx_rate, $rx_csw/@tx_rate), "\n";
     print "\n";
 }
 
@@ -105,7 +111,7 @@
       sprintf("%7.2f", $min), "/",
       sprintf("%7.2f", $avg), "/",
       sprintf("%7.2f", $max), "  ",
-      sprintf("%7.2f", sqrt($sq_sum/@time-$avg*$avg)), " ms\n";
+      sprintf("%7.2f", &std_dev($sq_sum, $avg, $#time+1)), " ms\n";
 }
 
 




More information about the commitlog mailing list