Files @ cbdd583f1e58
Branch filter:

Location: kallithea/rhodecode/lib/timerproxy.py

Marcin Kuzminski
reverted copy of cached instance:

CPython

changelog
total_time 39.7253162861
average on req 0.993132907152

changesets
total_time 42.5156304836
average on req 0.425156304836

Total: 546 MB

changelog
total_time 35.5851216316
average on req 0.889628040791

changesets
total_time 30.3608012199
average on req 0.303608012199

Total: 475 MB
from sqlalchemy.interfaces import ConnectionProxy
import time
import logging
log = logging.getLogger('timerproxy')

BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)


def color_sql(sql):
    COLOR_SEQ = "\033[1;%dm"
    COLOR_SQL = YELLOW
    normal = '\x1b[0m'
    return COLOR_SEQ % COLOR_SQL + sql + normal


class TimerProxy(ConnectionProxy):

    def __init__(self):
        super(TimerProxy, self).__init__()

    def cursor_execute(self, execute, cursor, statement, parameters,
                       context, executemany):

        now = time.time()
        try:
            log.info(color_sql(">>>>> STARTING QUERY >>>>>"))
            return execute(cursor, statement, parameters, context)
        finally:
            total = time.time() - now
            log.info(color_sql("<<<<< TOTAL TIME: %f <<<<<" % total))