Closed matklad closed 4 years ago
This is how I imagine this should work:
cargo xtask bench
xtask.rm target/release && cargo build -p rust-analyzer --release
(bench compile time)
git clone regex@some-sha
(we want to pin some specific non-trivial non-huge benchmark target)
rust-analyzer goto-definition
(bench form scratch goto)
rust-analyzer highlighiht
(bench from scratych highlighitngin)
** rust-analyzer analysis-stats
(bench typecheck){
"meta": { time: "${date}", sha1: "${git rev-parse HEAD}" , machine: "${OS, CPU, RAM}" },
"measurements:" { "name": value }
}
https://github.com/rust-analyzer/benchmark-data/data.json
Spearatelly, a /benchmarks
page should be created on https://rust-analyzer.github.io/ to fetch and show this data with JavaScript.
fixed
Deno has this swee:cake::cake::cake:eet page with benchmarks over here: https://deno.land/benchmarks.
I believe they are published automatically by travis: https://github.com/denoland/deno/blob/904c69c4c654e4b55fd2f46a063dc995cbe00e41/.travis.yml#L93
It would be tool to have something like this set up, though not pressing. Here's a great example for the benchmark: https://github.com/rust-analyzer/rust-analyzer/pull/489#discussion_r246931777
Here's the stuff we might want to measure:
parser.rs
from rusctuse std::collections::Hash
completionTechnically, we should run benchmarking on master branch, as a cron-job.