Changeset 4748


Ignore:
Timestamp:
11/03/08 06:16:07 (8 years ago)
Author:
werner
Message:

Make the reports more useful.

  • report: show also the CPU load of ttcp runs
  • report: print the standard deviation of all measurements
  • report: if given an argument, chdir to it before looking for files
File:
1 edited

Legend:

Unmodified
Added
Removed
  • developers/werner/wlan-perf/report

    r4745 r4748  
    44sub extract_ttcp() 
    55{ 
    6     local ($name, *rate, *csw) = @_; 
     6    local ($name, *rate, *csw, *cpu) = @_; 
    77 
    88    open(F, $name) || die "$name: $!"; 
     
    1414            push(@csw, $1+$2); 
    1515        } 
     16        if (/real (\d+)%/) { 
     17            push(@cpu, $1); 
     18        } 
    1619    } 
    1720    close F; 
     
    2124sub ttcp_format() 
    2225{ 
    23     local ($rate, $csw) = @_; 
     26    local ($rate, $csw, $cpu) = @_; 
    2427 
    25     return sprintf("%8.2f %7d", $rate/1000, $csw); 
     28    return sprintf("%8.2f %7d %3d%%", $rate/1000, $csw, $cpu); 
    2629} 
     30 
     31 
     32# 
     33# Dirty trick: we use 
     34# @var for the set of values extracted from the file, 
     35# $var for the sum collected for calculating the average, and 
     36# $var{""} to hold the sum of squares for the standard deviation. 
     37# 
    2738 
    2839 
    2940sub ttcp_set() 
    3041{ 
    31     local (*rate, *csw, $i) = @_; 
     42    local (*rate, *csw, *cpu, $i) = @_; 
    3243 
     44     
    3345    $rate += $rate[$i]; 
    3446    $csw += $csw[$i]; 
    35     return &ttcp_format($rate[$i], $csw[$i]); 
     47    $cpu += $cpu[$i]; 
     48    $rate{""} += $rate[$i]*$rate[$i]; 
     49    $csw{""} += $csw[$i]*$csw[$i]; 
     50    $cpu{""} += $cpu[$i]*$cpu[$i]; 
     51    return &ttcp_format($rate[$i], $csw[$i], $cpu[$i]); 
    3652} 
    3753 
     
    4561 
    4662 
     63sub ttcp_std_dev() 
     64{ 
     65    local (*var, $n) = @_; 
     66 
     67    return &std_dev($var{""}, $var/$n, $n); 
     68} 
     69 
     70 
    4771sub report_ttcp() 
    4872{ 
    4973    local ($label_tx, $label_rx, $tx, $rx) = @_; 
    50     local (@tx_rate, @tx_csw); 
    51     local (@rx_rate, @rx_csw); 
    52     local ($tx_rate, $tx_csw); 
    53     local ($rx_rate, $rx_csw); 
     74    local (@tx_rate, @tx_csw, @tx_cpu); 
     75    local (@rx_rate, @rx_csw, @rx_cpu); 
     76    local (%tx_rate, %tx_csw, %tx_cpu); 
     77    local (%rx_rate, %rx_csw, %rx_cpu); 
     78    local ($tx_rate, $tx_csw, $tx_cpu); 
     79    local ($rx_rate, $rx_csw, $rx_cpu); 
    5480    local ($gap) = " " x 4; 
     81    local ($n); 
    5582 
    5683    print "---- ", 
     
    5885       $label_rx, " ", "-" x (15-length $label_rx), "\n"; 
    5986    print " " x 5, 
    60       sprintf("%-8s %-7s", "*1000B/s", "ctx_sw"), $gap, 
    61       sprintf("%-8s %-7s", "*1000B/s", "ctx_sw"), "\n"; 
     87      sprintf("%-8s %-7s CPU ", "*1000B/s", "ctx_sw"), $gap, 
     88      sprintf("%-8s %-7s CPU ", "*1000B/s", "ctx_sw"), "\n"; 
    6289 
    63     &extract_ttcp($tx, *tx_rate, *tx_csw); 
    64     &extract_ttcp($rx, *rx_rate, *rx_csw); 
    65     for ($i = 0; $i != @tx_rate; $i++) { 
     90    &extract_ttcp($tx, *tx_rate, *tx_csw, *tx_cpu); 
     91    &extract_ttcp($rx, *rx_rate, *rx_csw, *rx_cpu); 
     92    $n = @tx_rate; 
     93    for ($i = 0; $i != $n; $i++) { 
    6694        print sprintf("%3d: ", $i+1), 
    67           &ttcp_set(*tx_rate, *tx_csw, $i), $gap, 
    68           &ttcp_set(*rx_rate, *rx_csw, $i), "\n"; 
     95          &ttcp_set(*tx_rate, *tx_csw, *tx_cpu, $i), $gap, 
     96          &ttcp_set(*rx_rate, *rx_csw, *rx_cpu, $i), "\n"; 
    6997    } 
    7098    print "AVG: ", 
    71       &ttcp_format($tx_rate/@tx_rate, $tx_csw/@tx_rate), $gap, 
    72       &ttcp_format($rx_rate/@tx_rate, $rx_csw/@tx_rate), "\n"; 
     99      &ttcp_format($tx_rate/$n, $tx_csw/$n, $tx_cpu/$n), $gap, 
     100      &ttcp_format($rx_rate/$n, $rx_csw/$n, $rx_cpu/$n), "\n"; 
     101    print "SDV: ", 
     102      &ttcp_format(&ttcp_std_dev(*tx_rate, $n), 
     103      &ttcp_std_dev(*tx_csw, $n), &ttcp_std_dev(*tx_cpu, $n)), $gap, 
     104      &ttcp_format(&ttcp_std_dev(*rx_rate, $n), 
     105      &ttcp_std_dev(*rx_csw, $n), &ttcp_std_dev(*rx_cpu, $n)), "\n"; 
    73106    print "\n"; 
    74107} 
     
    116149 
    117150 
     151if (@ARGV) { 
     152    chdir($ARGV[0]) || die "$ARGV[0]: $!"; 
     153} 
     154 
    118155&report_ttcp("host =>", "=> neo", "_rx_host", "_rx_neo"); 
    119156&report_ttcp("neo =>", "=> host", "_tx_neo", "_tx_host"); 
Note: See TracChangeset for help on using the changeset viewer.