Commit 43584300 authored by Ell's avatar Ell
Browse files

tools: in performance-log-viewer.py, cache source file lookups

In the performance-log viewer, cache the results of source-file
lookups, to speed up future lookups.

(cherry picked from commit 97498017)
parent 33269cc8
......@@ -82,28 +82,36 @@ editor_command = os.environ.get ("PERFORMANCE_LOG_VIEWER_EDITOR",
editor_command += " &"
def find_file (filename):
filename = re.sub ("[\\\\/]", GLib.DIR_SEPARATOR_S, filename)
def lookup (filename):
filename = re.sub ("[\\\\/]", GLib.DIR_SEPARATOR_S, filename)
if GLib.path_is_absolute (filename):
file = Gio.File.new_for_path (filename)
if GLib.path_is_absolute (filename):
file = Gio.File.new_for_path (filename)
if file.query_exists ():
return file
if file.query_exists ():
return file
for path in search_path:
rest = filename
for path in search_path:
rest = filename
while rest:
file = Gio.File.new_for_path (GLib.build_filenamev ((path, rest)))
while rest:
file = Gio.File.new_for_path (GLib.build_filenamev ((path, rest)))
if file.query_exists ():
return file
if file.query_exists ():
return file
sep = rest.find (GLib.DIR_SEPARATOR_S)
rest = rest[sep + 1:] if sep >= 0 else ""
return None
sep = rest.find (GLib.DIR_SEPARATOR_S)
if filename not in find_file.cache:
find_file.cache[filename] = lookup (filename)
rest = rest[sep + 1:] if sep >= 0 else ""
return find_file.cache[filename]
return None
find_file.cache = {}
VariableType = namedtuple ("VariableType",
("parse", "format", "format_numeric"))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment