From 7fdbfa2cf4867b04929e7b68f4306c8aaf48b3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Stadler?= Date: Mon, 30 Jun 2008 19:48:34 +0300 Subject: [PATCH] Move more attribute lookups out of loops for speed --- debug-viewer/GstDebugViewer/Data.py | 11 ++++++++--- debug-viewer/GstDebugViewer/GUI.py | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/debug-viewer/GstDebugViewer/Data.py b/debug-viewer/GstDebugViewer/Data.py index fa80444185..8a44a572e9 100644 --- a/debug-viewer/GstDebugViewer/Data.py +++ b/debug-viewer/GstDebugViewer/Data.py @@ -204,8 +204,13 @@ class LineCache (Producer): "W" : debug_level_warning, " " : debug_level_none} rexp = re.compile (r"\d:\d\d:\d\d\.\d+\s+\d+\s+0x[0-9a-f]+\s+([DLIEW ])") + # Moving attribute lookups out of the loop: readline = self.__fileobj.readline tell = self.__fileobj.tell + rexp_match = rexp.match + levels_append = levels.append + offsets_append = offsets.append + dict_levels_get = dict_levels.get self.__fileobj.seek (0) limit = self._lines_per_iteration @@ -215,11 +220,11 @@ class LineCache (Producer): line = readline () if not line: break - match = rexp.match (line) + match = rexp_match (line) if match is None: continue - levels.append (dict_levels.get (match.group (1), debug_level_none)) - offsets.append (offset) + levels_append (dict_levels_get (match.group (1), debug_level_none)) + offsets_append (offset) i += 1 if i >= limit: i = 0 diff --git a/debug-viewer/GstDebugViewer/GUI.py b/debug-viewer/GstDebugViewer/GUI.py index 89468e4c93..bc86463dfa 100644 --- a/debug-viewer/GstDebugViewer/GUI.py +++ b/debug-viewer/GstDebugViewer/GUI.py @@ -209,10 +209,15 @@ class LogModelBase (gtk.GenericTreeModel): def iter_rows_offset (self): + ensure_cached = self.ensure_cached + line_cache = self.line_cache + line_levels = self.line_levels + COL_LEVEL = self.COL_LEVEL + for i, offset in enumerate (self.line_offsets): - self.ensure_cached (offset) - row = self.line_cache[offset] - row[self.COL_LEVEL] = self.line_levels[i] # FIXME + ensure_cached (offset) + row = line_cache[offset] + row[COL_LEVEL] = line_levels[i] # FIXME yield (row, offset,) def on_get_flags (self):