Skip to content
Snippets Groups Projects
Commit 97d00e53 authored by Raphaël Gomès's avatar Raphaël Gomès
Browse files

revlog: add glue to use a pure-Rust VFS

This will save us a lot of calling back into Python, which is always
horribly expensive.

We are now faster in all benchmarked cases except for `log --patch`
specifically on mozilla-try. Fixing this will happen in a later patch.

```
### data-env-vars.name            = mercurial-devel-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.cat
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.files      = all-root
  # benchmark.variants.output     = plain
  # benchmark.variants.rev        = tip
e679697a6ca4: 1.760765  ~~~~~
626bd5191cc7: 1.555513  (-11.66%, -0.21)
### data-env-vars.name            = mozilla-try-2024-03-26-ds2-pnm
  # benchmark.name                = hg.command.cat
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.files      = all-root
  # benchmark.variants.output     = plain
  # benchmark.variants.rev        = tip
e679697a6ca4: 62.848869  ~~~~~
626bd5191cc7: 58.113051   (-7.54%, -4.74)
### data-env-vars.name            = mozilla-try-2024-03-26-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 10
  # benchmark.variants.patch      = yes
  # benchmark.variants.rev        = none
e679697a6ca4: 3.173532  ~~~~~
626bd5191cc7: 3.543591  (+11.66%, +0.37)
### data-env-vars.name            = mozilla-try-2024-03-26-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 1000
  # benchmark.variants.patch      = no
  # benchmark.variants.rev        = none
e679697a6ca4: 1.214698  ~~~~~
626bd5191cc7: 1.192478   (-1.83%, -0.02)
### data-env-vars.name            = mozilla-unified-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.cat
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.files      = all-root
  # benchmark.variants.output     = plain
  # benchmark.variants.rev        = tip
e679697a6ca4: 56.205474  ~~~~~
626bd5191cc7: 51.520074   (-8.34%, -4.69)
### data-env-vars.name            = mozilla-unified-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 10
  # benchmark.variants.patch      = yes
  # benchmark.variants.rev        = none
e679697a6ca4: 2.105419  ~~~~~
626bd5191cc7: 2.051849   (-2.54%, -0.05)
### data-env-vars.name            = mozilla-unified-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 1000
  # benchmark.variants.patch      = no
  # benchmark.variants.rev        = none
e679697a6ca4: 0.309960  ~~~~~
626bd5191cc7: 0.299035   (-3.52%, -0.01)
### data-env-vars.name            = tryton-public-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.cat
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.files      = all-root
  # benchmark.variants.output     = plain
  # benchmark.variants.rev        = tip
e679697a6ca4: 1.849832  ~~~~~
626bd5191cc7: 1.805076   (-2.42%, -0.04)
### data-env-vars.name            = tryton-public-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 10
  # benchmark.variants.patch      = yes
  # benchmark.variants.rev        = none
e679697a6ca4: 0.289521  ~~~~~
626bd5191cc7: 0.279889   (-3.33%, -0.01)
### data-env-vars.name            = tryton-public-2024-03-22-ds2-pnm
  # benchmark.name                = hg.command.log
  # bin-env-vars.hg.flavor        = rust
  # bin-env-vars.hg.py-re2-module = default
  # benchmark.variants.limit-rev  = 1000
  # benchmark.variants.patch      = no
  # benchmark.variants.rev        = none
e679697a6ca4: 0.332270  ~~~~~
626bd5191cc7: 0.323324   (-2.69%, -0.01)
```
parent 589d78d7
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment