tests/mockblackbox.py
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 03 Oct 2018 09:43:01 -0700
changeset 40031 62160d3077cd
parent 37123 a8a902d7176e
child 43076 2372284d9457
permissions -rw-r--r--
cborutil: change buffering strategy Profiling revealed that we were spending a lot of time on the line that was concatenating the old buffer with the incoming data when attempting to decode long byte strings, such as manifest revisions. Essentially, we were feeding N chunks of size len(X) << len(Y) into decode() and continuously allocating a new, larger buffer to hold the undecoded input. This created substantial memory churn and slowed down execution. Changing the code to aggregate pending chunks in a list until we have enough data to fully decode the next atom makes things much more efficient. I don't have exact data, but I recall the old code spending >1s on manifest fulltexts from the mozilla-unified repo. The new code doesn't significantly appear in profile output. Differential Revision: https://phab.mercurial-scm.org/D4854
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28943
417380aa5bbe py3: use absolute_import in mockblackbox.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 28028
diff changeset
     1
from __future__ import absolute_import
37123
a8a902d7176e procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents: 36143
diff changeset
     2
from mercurial.utils import (
a8a902d7176e procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents: 36143
diff changeset
     3
    procutil,
28943
417380aa5bbe py3: use absolute_import in mockblackbox.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 28028
diff changeset
     4
)
24705
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
32450
043948c84647 devel: update blackbox to use default-date
Boris Feld <boris.feld@octobus.net>
parents: 28943
diff changeset
     6
# XXX: we should probably offer a devel option to do this in blackbox directly
24705
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
def getuser():
36143
f49c3ee5b02f py3: use b'' in mockblackbox.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32450
diff changeset
     8
    return b'bob'
28028
ac49ecb2a897 tests: mock getpid to reduce glob usage
timeless <timeless@mozdev.org>
parents: 24705
diff changeset
     9
def getpid():
ac49ecb2a897 tests: mock getpid to reduce glob usage
timeless <timeless@mozdev.org>
parents: 24705
diff changeset
    10
    return 5000
24705
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
# mock the date and user apis so the output is always the same
0ead0a07ed9c tests: move mock blackbox extension into own file
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
def uisetup(ui):
37123
a8a902d7176e procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents: 36143
diff changeset
    14
    procutil.getuser = getuser
a8a902d7176e procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents: 36143
diff changeset
    15
    procutil.getpid = getpid