Mercurial > hg
view .gitlab/merge_request_templates/Default.md @ 51375:02e7d79edf62
branchmap: use mmap for faster revbranchcache loading
A typical revbranchmap usage is:
- load the entire revbranchmap file into memory
- maybe do a few lookups
- add a few bytes to it
- write the addition to disk
There's no reason to load the entire revbranchmap into memory.
We can split it into a large immutable prefix and a mutable suffix,
and then memorymap the prefix, thus saving all the useless loading.
Benchmarking on some real-world pushes suggests that out of ~100s server-side
push handling revbranchcache handling is responsible for:
* ~7s with no change
* ~1.3s with the change, without mmap
* 0.04s with the change, with mmap
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Wed, 10 Jan 2024 18:58:42 +0000 |
parents | 7b6d3a9bd7be |
children |
line wrap: on
line source
/assign_reviewer @mercurial.review <!-- Welcome to the Mercurial Merge Request creation process: * Set a simple title for your MR, * All important information should be contained in your changesets' content or description, * You can add some workflow-relevant information here (eg: when this depends on another MR), * If your changes are not ready for review yet, click `Start the title with Draft:` under the title. More details here: * https://www.mercurial-scm.org/wiki/ContributingChanges * https://www.mercurial-scm.org/wiki/Heptapod -->