/rev/f640ea5f0920
changeset: 1199:f640ea5f0920
user: Marcel Keller <[email protected]>
date: Fri Jul 10 13:27:42 2009 +0200
summary: Profiling outputs lifetime of every Share object.
diffstat:
viff/runtime.py | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diffs (37 lines):
diff -r c15bc2925969 -r f640ea5f0920 viff/runtime.py
--- a/viff/runtime.py Fri Jul 03 10:48:59 2009 +0200
+++ b/viff/runtime.py Fri Jul 10 13:27:42 2009 +0200
@@ -37,9 +37,10 @@
import struct
from optparse import OptionParser, OptionGroup
from collections import deque
+import os
from viff.field import GF256, FieldElement
-from viff.util import wrapper, rand, deep_wait, track_memory_usage
+from viff.util import wrapper, rand, deep_wait, track_memory_usage, begin, end
import viff.reactor
from twisted.internet import reactor
@@ -87,6 +88,21 @@
if value is not None:
self.callback(value)
+ if os.environ.get("VIFF_PROFILE"):
+ old_init = __init__
+
+ def __init__(self, *a, **kw):
+ self.old_init(*a, **kw)
+ self.pc = self.runtime.program_counter[:]
+ begin(None, self.label())
+
+ def __del__(self):
+ end(None, self.label())
+
+ def label(self):
+ return "share " + hex(id(self)) + " " + \
+ ".".join(map(str, self.pc))
+
def __add__(self, other):
"""Addition."""
return self.runtime.add(self, other)
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk