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 = []