/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

Reply via email to