[Cryptech-Commits] [sw/pkcs11] 04/04: More useful script output.
git at cryptech.is
git at cryptech.is
Sat Mar 3 22:49:44 UTC 2018
This is an automated email from the git hooks/post-receive script.
sra at hactrn.net pushed a commit to branch master
in repository sw/pkcs11.
commit 90405d32719260adc75c9c23fb3b7d9e33485e85
Author: Rob Austein <sra at hactrn.net>
AuthorDate: Sat Mar 3 17:41:15 2018 -0500
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.
---
scripts/thready-time-signature.py | 16 +++++++++++-----
1 file 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)
More information about the Commits
mailing list