From 70cd8e74ebc16a02aa0680c93b6219b72c61ee41 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sat, 14 Mar 2015 12:48:28 +0100 Subject: [PATCH] Measure time it takes to init URL completion. --- qutebrowser/completion/models/instances.py | 7 ++++--- qutebrowser/completion/models/sortfilter.py | 2 +- qutebrowser/utils/debug.py | 11 +++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/qutebrowser/completion/models/instances.py b/qutebrowser/completion/models/instances.py index 152a87499..95cb02387 100644 --- a/qutebrowser/completion/models/instances.py +++ b/qutebrowser/completion/models/instances.py @@ -32,7 +32,7 @@ from PyQt5.QtCore import pyqtSlot, Qt from qutebrowser.completion.models import miscmodels, urlmodel, configmodel from qutebrowser.completion.models.sortfilter import ( CompletionFilterModel as CFM) -from qutebrowser.utils import objreg, usertypes, log +from qutebrowser.utils import objreg, usertypes, log, debug from qutebrowser.config import configdata @@ -56,8 +56,9 @@ def _init_helptopic_completion(): def _init_url_completion(): """Initialize the URL completion model.""" log.completion.debug("Initializing URL completion.") - _instances[usertypes.Completion.url] = CFM( - urlmodel.UrlCompletionModel(), dumb_sort=Qt.DescendingOrder) + with debug.log_time(log.completion, 'URL completion init'): + _instances[usertypes.Completion.url] = CFM( + urlmodel.UrlCompletionModel(), dumb_sort=Qt.DescendingOrder) def _init_setting_completions(): diff --git a/qutebrowser/completion/models/sortfilter.py b/qutebrowser/completion/models/sortfilter.py index f7f70eb95..4eae6f5f5 100644 --- a/qutebrowser/completion/models/sortfilter.py +++ b/qutebrowser/completion/models/sortfilter.py @@ -25,7 +25,7 @@ Contains: from PyQt5.QtCore import QSortFilterProxyModel, QModelIndex, Qt -from qutebrowser.utils import log, qtutils +from qutebrowser.utils import log, qtutils, debug from qutebrowser.completion.models import base as completion diff --git a/qutebrowser/utils/debug.py b/qutebrowser/utils/debug.py index 5e08dc463..2ff27e19e 100644 --- a/qutebrowser/utils/debug.py +++ b/qutebrowser/utils/debug.py @@ -23,6 +23,8 @@ import re import sys import inspect import functools +import datetime +import contextlib from PyQt5.QtCore import QEvent, QMetaMethod @@ -248,3 +250,12 @@ def format_call(func, args=None, kwargs=None, full=True): else: name = func.__name__ return '{}({})'.format(name, _format_args(args, kwargs)) + + +@contextlib.contextmanager +def log_time(logger, action='operation'): + started = datetime.datetime.now() + yield + finished = datetime.datetime.now() + delta = (finished - started).total_seconds() + logger.debug("{} took {} seconds.".format(action.capitalize(), delta))