Measure time it takes to init URL completion.

This commit is contained in:
Florian Bruhin 2015-03-14 12:48:28 +01:00
parent a857b9a638
commit 70cd8e74eb
3 changed files with 16 additions and 4 deletions

View File

@ -32,7 +32,7 @@ from PyQt5.QtCore import pyqtSlot, Qt
from qutebrowser.completion.models import miscmodels, urlmodel, configmodel from qutebrowser.completion.models import miscmodels, urlmodel, configmodel
from qutebrowser.completion.models.sortfilter import ( from qutebrowser.completion.models.sortfilter import (
CompletionFilterModel as CFM) CompletionFilterModel as CFM)
from qutebrowser.utils import objreg, usertypes, log from qutebrowser.utils import objreg, usertypes, log, debug
from qutebrowser.config import configdata from qutebrowser.config import configdata
@ -56,6 +56,7 @@ def _init_helptopic_completion():
def _init_url_completion(): def _init_url_completion():
"""Initialize the URL completion model.""" """Initialize the URL completion model."""
log.completion.debug("Initializing URL completion.") log.completion.debug("Initializing URL completion.")
with debug.log_time(log.completion, 'URL completion init'):
_instances[usertypes.Completion.url] = CFM( _instances[usertypes.Completion.url] = CFM(
urlmodel.UrlCompletionModel(), dumb_sort=Qt.DescendingOrder) urlmodel.UrlCompletionModel(), dumb_sort=Qt.DescendingOrder)

View File

@ -25,7 +25,7 @@ Contains:
from PyQt5.QtCore import QSortFilterProxyModel, QModelIndex, Qt 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 from qutebrowser.completion.models import base as completion

View File

@ -23,6 +23,8 @@ import re
import sys import sys
import inspect import inspect
import functools import functools
import datetime
import contextlib
from PyQt5.QtCore import QEvent, QMetaMethod from PyQt5.QtCore import QEvent, QMetaMethod
@ -248,3 +250,12 @@ def format_call(func, args=None, kwargs=None, full=True):
else: else:
name = func.__name__ name = func.__name__
return '{}({})'.format(name, _format_args(args, kwargs)) 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))