Index: psyco_win32/psyco/logger.py |
=================================================================== |
--- psyco_win32/psyco/logger.py (revision 0) |
+++ psyco_win32/psyco/logger.py (revision 0) |
@@ -0,0 +1,96 @@ |
+########################################################################### |
+# |
+# Psyco logger. |
+# Copyright (C) 2001-2002 Armin Rigo et.al. |
+ |
+"""Psyco logger. |
+ |
+See log() in core.py. |
+""" |
+########################################################################### |
+ |
+ |
+import _psyco |
+from time import time, localtime, strftime |
+ |
+ |
+current = None |
+print_charges = 10 |
+dump_delay = 0.2 |
+dump_last = 0.0 |
+ |
+def write(s, level): |
+ t = time() |
+ f = t-int(t) |
+ try: |
+ current.write("%s.%02d %-*s%s\n" % ( |
+ strftime("%X", localtime(int(t))), |
+ int(f*100.0), 63-level, s, |
+ "%"*level)) |
+ current.flush() |
+ except (OSError, IOError): |
+ pass |
+ |
+def psycowrite(s): |
+ t = time() |
+ f = t-int(t) |
+ try: |
+ current.write("%s.%02d %-*s%s\n" % ( |
+ strftime("%X", localtime(int(t))), |
+ int(f*100.0), 60, s.strip(), |
+ "% %")) |
+ current.flush() |
+ except (OSError, IOError): |
+ pass |
+ |
+##def writelines(lines, level=0): |
+## if lines: |
+## t = time() |
+## f = t-int(t) |
+## timedesc = strftime("%x %X", localtime(int(t))) |
+## print >> current, "%s.%03d %-*s %s" % ( |
+## timedesc, int(f*1000), |
+## 50-level, lines[0], |
+## "+"*level) |
+## timedesc = " " * (len(timedesc)+5) |
+## for line in lines[1:]: |
+## print >> current, timedesc, line |
+ |
+def writememory(): |
+ write("memory usage: %d+ kb" % _psyco.memory(), 1) |
+ |
+def dumpcharges(): |
+ global dump_last |
+ if print_charges: |
+ t = time() |
+ if not (dump_last <= t < dump_last+dump_delay): |
+ if t <= dump_last+1.5*dump_delay: |
+ dump_last += dump_delay |
+ else: |
+ dump_last = t |
+ #write("%s: charges:" % who, 0) |
+ lst = _psyco.stattop(print_charges) |
+ if lst: |
+ f = t-int(t) |
+ lines = ["%s.%02d ______\n" % ( |
+ strftime("%X", localtime(int(t))), |
+ int(f*100.0))] |
+ i = 1 |
+ for co, charge in lst: |
+ detail = co.co_filename |
+ if len(detail) > 19: |
+ detail = '...' + detail[-17:] |
+ lines.append(" #%-3d |%4.1f %%| %-26s%20s:%d\n" % |
+ (i, charge*100.0, co.co_name, detail, |
+ co.co_firstlineno)) |
+ i += 1 |
+ current.writelines(lines) |
+ current.flush() |
+ |
+def writefinalstats(): |
+ dumpcharges() |
+ writememory() |
+ writedate("program exit") |
+ |
+def writedate(msg): |
+ write('%s, %s' % (msg, strftime("%x")), 20) |
Property changes on: psyco_win32\psyco\logger.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |