forked from mirrors/jj
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 |
||
---|---|---|
.. | ||
commands | ||
config | ||
cleanup_guard.rs | ||
cli_util.rs | ||
commit_templater.rs | ||
config-schema.json | ||
config.rs | ||
diff_util.rs | ||
formatter.rs | ||
graphlog.rs | ||
lib.rs | ||
main.rs | ||
merge_tools.rs | ||
operation_templater.rs | ||
progress.rs | ||
template.pest | ||
template_builder.rs | ||
template_parser.rs | ||
templater.rs | ||
text_util.rs | ||
time_util.rs | ||
ui.rs |