plot xml file size
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Tue May 26 17:16:29 2009 +0100 (8 months ago)
changeset 4003fa898c209ec0
parent 4002 59b31c58896f
child 4004 57ce25b5cf5d
plot xml file size
utils/flowmon/plot.py
     1.1 --- a/utils/flowmon/plot.py	Tue May 26 11:36:46 2009 +0100
     1.2 +++ b/utils/flowmon/plot.py	Tue May 26 17:16:29 2009 +0100
     1.3 @@ -11,8 +11,11 @@
     1.4  
     1.5  class ConfidenceValue(object):
     1.6  
     1.7 -    def __init__(self):
     1.8 -        self.samples = []
     1.9 +    def __init__(self, samples=None):
    1.10 +        if samples is None:
    1.11 +            self.samples = []
    1.12 +        else:
    1.13 +            self.samples = list(samples)
    1.14          self._mean = None
    1.15          self._error = None
    1.16  
    1.17 @@ -78,6 +81,7 @@
    1.18          self.max_memory = long(results_el.attrib['max-memory'])
    1.19          self.num_nodes_side = int(results_el.attrib['num-nodes-side'])
    1.20          self.flows = [Flow(el) for el in results_el.findall('FlowMonitor/FlowStats/Flow')]
    1.21 +        self.xml_file_size = long(results_el.attrib['xml-file-size'])
    1.22  
    1.23  
    1.24  class ResultsDb(object):
    1.25 @@ -110,8 +114,9 @@
    1.26          results.read_results_file(fname)
    1.27      print "Read %i simulations." % (len(results.simulations),)
    1.28  
    1.29 -    performance_results(results)
    1.30 +    #performance_results(results)
    1.31      histograms(results)
    1.32 +    #xml_file_size_results(results)
    1.33  
    1.34  
    1.35  def mean(l):
    1.36 @@ -150,10 +155,23 @@
    1.37                  rx_bitrates.append(flow.rxBitrate)
    1.38              tx_bitrates.append(flow.txBitrate)
    1.39  
    1.40 -    print "Tx bitrate: mean=%r, stddev=%r" % (mean(tx_bitrates), stddev(tx_bitrates))
    1.41 -    print "Rx bitrate: mean=%r, stddev=%r" % (mean(rx_bitrates), stddev(rx_bitrates))
    1.42 -    print "Delays: mean=%r, stddev=%r" % (mean(delays), stddev(delays))
    1.43 -    print "Losses: mean=%r, stddev=%r" % (mean(losses), stddev(losses))
    1.44 +    tx_bitrate_cv = ConfidenceValue(tx_bitrates)
    1.45 +    rx_bitrate_cv = ConfidenceValue(rx_bitrates)
    1.46 +    delays_cv = ConfidenceValue(delays)
    1.47 +    losses_cv = ConfidenceValue(losses)
    1.48 +    
    1.49 +    print "Tx bitrate: mean=%r, stddev=%r, cv=[%r -- %r]" % (mean(tx_bitrates), stddev(tx_bitrates),
    1.50 +                                                             tx_bitrate_cv.mean - tx_bitrate_cv.error,
    1.51 +                                                             tx_bitrate_cv.mean + tx_bitrate_cv.error)
    1.52 +    print "Rx bitrate: mean=%r, stddev=%r, cv=[%r -- %r]" % (mean(rx_bitrates), stddev(rx_bitrates),
    1.53 +                                                             rx_bitrate_cv.mean - rx_bitrate_cv.error,
    1.54 +                                                             rx_bitrate_cv.mean + rx_bitrate_cv.error)
    1.55 +    print "Delays: mean=%r, stddev=%r, cv=[%r -- %r]" % (mean(delays), stddev(delays),
    1.56 +                                                         delays_cv.mean - delays_cv.error,
    1.57 +                                                         delays_cv.mean + delays_cv.error)
    1.58 +    print "Losses: mean=%r, stddev=%r, cv=[%r -- %r]" % (mean(losses), stddev(losses),
    1.59 +                                                         losses_cv.mean - losses_cv.error,
    1.60 +                                                         losses_cv.mean + losses_cv.error)
    1.61  
    1.62      pylab.subplot(221)
    1.63      pylab.xlabel("Delay (s)")
    1.64 @@ -179,6 +197,29 @@
    1.65      pylab.show()
    1.66  
    1.67  
    1.68 +def xml_file_size_results(results):
    1.69 +    xml_size_list = []
    1.70 +
    1.71 +    num_nodes_list = []
    1.72 +
    1.73 +    num_nodes_side_set = list(set(sim.num_nodes_side for sim in results.simulations))
    1.74 +    num_nodes_side_set.sort()
    1.75 +
    1.76 +    for num_nodes_side in num_nodes_side_set:
    1.77 +        num_nodes_list.append(num_nodes_side*num_nodes_side)
    1.78 +        xml_size = ConfidenceValue()
    1.79 +        xml_size_list.append(xml_size)
    1.80 +        for sim in results.simulations:
    1.81 +            if sim.num_nodes_side == num_nodes_side:
    1.82 +                if not sim.enable_monitor:
    1.83 +                    continue
    1.84 +                xml_size.add_sample(sim.xml_file_size)
    1.85 +    pylab.plot(num_nodes_list, [s.mean for s in xml_size_list])
    1.86 +    pylab.ylabel("XML file size (B)")
    1.87 +    pylab.xlabel("Number of Nodes")
    1.88 +    pylab.show()
    1.89 +
    1.90 +
    1.91  def performance_results(results):
    1.92      cpu_time_no_monitor = []
    1.93      cpu_time_monitor = []