Mercurial > hg
view tests/test-extensions-wrapfunction.py.out @ 46095:93e09d370003
treemanifest: stop storing full path for each item in manifest._lazydirs
This information is obtainable, if needed, based on the lazydirs key (which is
the entry name) and the manifest's `dir()` method.
### Performance
This is actually both a memory and a performance improvement, but it's likely to
be a very small one in most situations. In the pathological repo I've been using
for testing other performance work I've done recently, this reduced the time for
a rebase operation (rebasing two commits across a public-phase change that
touches a sibling of one of my tracked directories where the common parent is
massive (>>10k entries)):
#### Before
```
Time (mean ± σ): 4.059 s ± 0.121 s [User: 0.9 ms, System: 0.6 ms]
Range (min … max): 3.941 s … 4.352 s 10 runs
```
#### After
```
Time (mean ± σ): 3.707 s ± 0.060 s [User: 0.8 ms, System: 0.8 ms]
Range (min … max): 3.648 s … 3.818 s 10 runs
```
Differential Revision: https://phab.mercurial-scm.org/D9553
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Thu, 03 Dec 2020 14:39:39 -0800 |
parents | 82bd4c5a81e5 |
children |
line wrap: on
line source
wrap 0: [0, 'orig'] wrap 1: [1, 0, 'orig'] wrap 2: [2, 1, 0, 'orig'] wrap 3: [3, 2, 1, 0, 'orig'] wrap 4: [4, 3, 2, 1, 0, 'orig'] wrap 0: [0, 4, 3, 2, 1, 0, 'orig'] unwrap 3: 3: [0, 4, 2, 1, 0, 'orig'] unwrap -: 0: [4, 2, 1, 0, 'orig'] unwrap 0: 0: [4, 2, 1, 'orig'] unwrap 4: 4: [2, 1, 'orig'] unwrap 0: -: ValueError unwrap 2: 2: [1, 'orig'] unwrap 1: 1: ['orig'] unwrap -: -: IndexError context manager ['orig'] context manager [1, 'orig'] context manager [0, 1, 'orig'] context manager [2, 0, 1, 'orig'] context manager [2, 1, 'orig'] context manager [2, 'orig'] wrap callable object [0, 'orig']