diff options
author | Rob Austein <sra@hactrn.net> | 2018-03-03 17:41:15 -0500 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2018-03-03 17:41:15 -0500 |
commit | 90405d32719260adc75c9c23fb3b7d9e33485e85 (patch) | |
tree | 7cea550368bc87992302d38878c77456b2e02abe | |
parent | 50923a78e66d7039689131e9933e7a21c1083310 (diff) |
More useful script output.
Overall performance numbers are still bad. Presumably having a single
global PKCS #11 lock does not help here. Need a bitstream with more
ModExp and ECDSA cores before this will matter much, but will likely
need to figure out some way to do per-session locking instead of
global for operations we want to run in parallel. At which point
we'll be on the road to deadlock hell, so will need some care.
-rwxr-xr-x | scripts/thready-time-signature.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/scripts/thready-time-signature.py b/scripts/thready-time-signature.py index c7240df..fb84c1e 100755 --- a/scripts/thready-time-signature.py +++ b/scripts/thready-time-signature.py @@ -87,8 +87,9 @@ class ECDSAKey(object): class Results(object): - def __init__(self): + def __init__(self, name): self.lock = threading.RLock() + self.name = name self.sum = datetime.timedelta(seconds = 0) self.t0 = datetime.datetime.now() self.t1 = None @@ -107,14 +108,18 @@ class Results(object): return self.sum / self.n @property - def tmean(self): + def throughput(self): return (self.t1 - self.t0) / self.n + @property + def sigs_per_second(self): + return self.n / (self.t1 - self.t0).total_seconds() + def report(self): with self.lock: if self.t1 is None: self.t1 = datetime.datetime.now() - print "n {0.n} t0 {0.t0} t1 {0.t1} mean {0.mean} tmean {0.tmean}".format(self) + print "{0.name} sigs/second {0.sigs_per_second} mean {0.mean} throughput {0.throughput} (n {0.n}, t0 {0.t0}, t1 {0.t1})".format(self) class Worker(threading.Thread): @@ -172,14 +177,15 @@ def main(): for name in args.keys: - print "Starting test with key {}, {} iterations".format(name, args.iterations) + if not args.quiet: + print "Starting test with key {}, {} iterations".format(name, args.iterations) k = key_table[name] k.create(args, p11, session, "Your mother was a hamster") global results - results = Results() + results = Results(name) for i in xrange(args.iterations): q.put(k) |