ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/src
Yuya Nishihara a03e9c41a3 cli: run revset bench with fresh (but index-preloaded) repo instance
Some benchmark numbers in the following order:
- original
- fresh repo, BatchSize::SmallInput
- fresh but index-preloaded repo, BatchSize::SmallInput
- fresh but index-preloaded repo, BatchSize::LargeInput

    % cargo run --release --features bench -- bench revset ':main'
    revsets/:main           time:   [271.49 µs 271.74 µs 272.07 µs]
    revsets/:main           time:   [754.17 µs 758.22 µs 764.02 µs]
    revsets/:main           time:   [367.11 µs 372.65 µs 381.99 µs]
    revsets/:main           time:   [341.76 µs 342.98 µs 344.35 µs]

    % cargo run --release --features bench -- bench revset 'author(martinvonz)'
    revsets/author(martinvonz)
                            time:   [767.43 µs 770.52 µs 775.59 µs]
    revsets/author(martinvonz)
                            time:   [31.960 ms 31.984 ms 32.011 ms]
    revsets/author(martinvonz)
                            time:   [31.478 ms 31.538 ms 31.615 ms]
    revsets/author(martinvonz)
                            time:   [31.503 ms 31.526 ms 31.550 ms]

I think the fresh but index-preloaded repo is close to the practical
evaluation environment. With BatchSize::SmallInput, it appears to consume
~600MB (RES) memory (compared to ~50MB in LargeInput.) I don't think that's
huge, but it might affect cache usage, so I chose LargeInput.

https://docs.rs/criterion/latest/criterion/enum.BatchSize.html
2023-03-30 19:13:11 +09:00
..
commands cli: run revset bench with fresh (but index-preloaded) repo instance 2023-03-30 19:13:11 +09:00
config cli: add ui.log-word-wrap option 2023-03-11 12:01:17 +09:00
cleanup_guard.rs style: move unix-specific imports into unix section 2023-02-06 13:16:30 +01:00
cli_util.rs cli: find working copy's first parent from commit store (not index) 2023-03-24 10:09:40 -07:00
commit_templater.rs templater: add "parents" keyword in place of "parent_commit_ids" 2023-03-24 12:17:38 +09:00
config-schema.json cli: add ui.log-word-wrap option 2023-03-11 12:01:17 +09:00
config.rs config: extract default log template to config/templates.toml 2023-02-15 00:23:48 +09:00
diff_util.rs repo: implement Repo on ReadonlyRepo instead of its Arc 2023-03-21 21:43:44 -07:00
formatter.rs formatter: pass data range to replay callback instead of data slice 2023-03-10 16:07:55 +09:00
graphlog.rs cli: replace o as graph node by when using unicode graph 2023-03-12 23:21:05 -07:00
lib.rs templater: extract evaluation interface and build_() functions to new module 2023-03-13 11:45:17 +09:00
main.rs
merge_tools.rs allow passing environment variables to external tools 2023-02-12 07:23:29 -08:00
operation_templater.rs templater: add support for unformattable property 2023-03-24 12:17:38 +09:00
progress.rs ui: simplify size() to only return width, rename it to term_width() 2023-03-11 12:01:17 +09:00
template.pest templater: add parsing rule for lambda expression 2023-03-18 12:04:00 +09:00
template_builder.rs templater: implement list methods for unformattable property 2023-03-24 12:17:38 +09:00
template_parser.rs templater: add list.map(|x| ...) operation 2023-03-18 12:04:00 +09:00
templater.rs templater: add trait that represents a mapped template 2023-03-18 12:04:00 +09:00
text_util.rs templater: move split_email() to text_util module 2023-03-13 11:45:17 +09:00
time_util.rs time_util: add functions to parse format spec and apply it later 2023-03-15 12:14:42 +09:00
ui.rs cargo: update MSRV to 1.64 2023-03-17 22:44:29 -07:00