|
@@ -69,11 +69,13 @@ class PerfStats:
|
|
|
public-key operations of various types. We will reset these every
|
|
|
epoch."""
|
|
|
|
|
|
- def __init__(self, ent_type):
|
|
|
+ def __init__(self, ent_type, bw=None):
|
|
|
# Which type of entity is this for (DIRAUTH, RELAY, CLIENT)
|
|
|
self.ent_type = ent_type
|
|
|
# A printable name for the entity
|
|
|
self.name = None
|
|
|
+ # The relay bandwidth, if appropriate
|
|
|
+ self.bw = bw
|
|
|
self.reset()
|
|
|
|
|
|
def __str__(self):
|
|
@@ -122,10 +124,15 @@ class PerfStatsStats:
|
|
|
/ (self.N - 1))
|
|
|
return "%f \pm %f" % (mean, stddev)
|
|
|
|
|
|
- def __init__(self):
|
|
|
+ def __init__(self, usebw=False):
|
|
|
+ self.usebw = usebw
|
|
|
self.bytes_sent = PerfStatsStats.SingleStat()
|
|
|
self.bytes_received = PerfStatsStats.SingleStat()
|
|
|
self.bytes_tot = PerfStatsStats.SingleStat()
|
|
|
+ if self.usebw:
|
|
|
+ self.bytesperbw_sent = PerfStatsStats.SingleStat()
|
|
|
+ self.bytesperbw_received = PerfStatsStats.SingleStat()
|
|
|
+ self.bytesperbw_tot = PerfStatsStats.SingleStat()
|
|
|
self.keygens = PerfStatsStats.SingleStat()
|
|
|
self.sigs = PerfStatsStats.SingleStat()
|
|
|
self.verifs = PerfStatsStats.SingleStat()
|
|
@@ -136,6 +143,10 @@ class PerfStatsStats:
|
|
|
self.bytes_sent.accum(stat.bytes_sent)
|
|
|
self.bytes_received.accum(stat.bytes_received)
|
|
|
self.bytes_tot.accum(stat.bytes_sent + stat.bytes_received)
|
|
|
+ if self.usebw:
|
|
|
+ self.bytesperbw_sent.accum(stat.bytes_sent/stat.bw)
|
|
|
+ self.bytesperbw_received.accum(stat.bytes_received/stat.bw)
|
|
|
+ self.bytesperbw_tot.accum((stat.bytes_sent + stat.bytes_received)/stat.bw)
|
|
|
self.keygens.accum(stat.keygens)
|
|
|
self.sigs.accum(stat.sigs)
|
|
|
self.verifs.accum(stat.verifs)
|
|
@@ -144,7 +155,14 @@ class PerfStatsStats:
|
|
|
|
|
|
def __str__(self):
|
|
|
if self.N > 0:
|
|
|
- return "sent=%s recv=%s bytes=%s keygen=%s sig=%s verif=%s dh=%s N=%s" % \
|
|
|
+ if self.usebw:
|
|
|
+ return "sent=%s recv=%s bytes=%s sentperbw=%s recvperbw=%s bytesperbw=%s keygen=%s sig=%s verif=%s dh=%s N=%s" % \
|
|
|
+ (self.bytes_sent, self.bytes_received, self.bytes_tot,
|
|
|
+ self.bytesperbw_sent, self.bytesperbw_received,
|
|
|
+ self.bytesperbw_tot,
|
|
|
+ self.keygens, self.sigs, self.verifs, self.dhs, self.N)
|
|
|
+ else:
|
|
|
+ return "sent=%s recv=%s bytes=%s keygen=%s sig=%s verif=%s dh=%s N=%s" % \
|
|
|
(self.bytes_sent, self.bytes_received, self.bytes_tot,
|
|
|
self.keygens, self.sigs, self.verifs, self.dhs, self.N)
|
|
|
else:
|