profiler.py
Go to the documentation of this file.
1 
2 import time
3 import who_calls
4 import neo_cgi
5 
6 PROFILER_DATA = []
7 PROFILER_START = 0
8 PROFILER_ENABLED = 0
9 PROFILER_DEPTH = 0
10 
11 def enable():
12  global PROFILER_START
13  global PROFILER_ENABLED
14  global PROFILER_DATA
15  PROFILER_START = time.time()
16  PROFILER_ENABLED = 1
17  PROFILER_DATA = []
18 
19 def disable():
20  global PROFILER_START
21  global PROFILER_ENABLED
22  global PROFILER_DATA
23  PROFILER_START = 0
24  PROFILER_ENABLED = 0
25  PROFILER_DATA = []
26 
27 def hdfExport(prefix, hdf):
28  global PROFILER_DATA
29  n = 0
30  for p in PROFILER_DATA:
31  hdf.setValue("%s.%d.when" % (prefix, n), "%5.2f" % (p.when))
32  hdf.setValue("%s.%d.time" % (prefix, n), "%5.2f" % (p.length))
33  hdf.setValue("%s.%d.klass" % (prefix, n), p.klass)
34  hdf.setValue("%s.%d.what" % (prefix, n), " " * p.depth + p.what)
35  hdf.setValue("%s.%d.where" % (prefix, n), neo_cgi.htmlEscape(p.where))
36 
37 class Profiler:
38  def __init__ (self, klass, what):
39  global PROFILER_START
40  global PROFILER_ENABLED
41  global PROFILER_DATA
42  global PROFILER_DEPTH
43  if not PROFILER_ENABLED: return
44  self.when = time.time() - PROFILER_START
45  self.klass = klass
46  self.where = who_calls.pretty_who_calls()
47  self.what = what
48  self.length = 0
49  self.depth = PROFILER_DEPTH
50  PROFILER_DEPTH = PROFILER_DEPTH + 1
51 
52  PROFILER_DATA.append(self)
53 
54  def end(self):
55  global PROFILER_ENABLED
56  global PROFILER_DEPTH
57  if not PROFILER_ENABLED: return
58  self.length = time.time() - self.when - PROFILER_START
59  PROFILER_DEPTH = PROFILER_DEPTH - 1
60  if PROFILER_DEPTH < 0: PROFILER_DEPTH = 0
61 
63  def __init__ (self, real_cursor):
64  self.real_cursor = real_cursor
65 
66  def execute (self, query, args=None):
67  p = Profiler("SQL", query)
68  r = self.real_cursor.execute(query, args)
69  p.end()
70  return r
71 
72  def __getattr__ (self, key):
73  return getattr(self.real_cursor, key)
def execute(self, query, args=None)
Definition: profiler.py:66
def __init__(self, real_cursor)
Definition: profiler.py:63
def hdfExport(prefix, hdf)
Definition: profiler.py:27
def __init__(self, klass, what)
Definition: profiler.py:38


pyclearsilver
Author(s): Scott Noob Hassan
autogenerated on Mon Jun 10 2019 15:51:13