Skip to content

Commit 6aa7fae

Browse files
authored
Merge pull request #1535 from nnethercote/tweak-benchmark-descs
Tweak benchmark descriptions.
2 parents 2895e72 + 470be4c commit 6aa7fae

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

collector/compile-benchmarks/README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ There are three categories of compile-time benchmarks, **Primary**, **Secondary*
1515
These are real programs that are important in some way, and worth tracking.
1616
They mostly consist of real-world crates.
1717

18-
- **bitmaps-3.1.0**: A bitmaps implementation. Stresses code handling traits.
18+
- **bitmaps-3.1.0**: A bitmaps implementation. Stresses the compiler's trait
19+
handling by implementing a trait `Bits` for the type `BitsImpl<N>` for every
20+
`N` value from 1 to 1024.
1921
- **cargo-0.60.0**: The Rust package manager. A large program, and an important
20-
one in the Rust ecosystem.
21-
- **clap-3.1.6**: A command line argument parser. A crate used by many Rust
22-
programs.
22+
part of the Rust ecosystem.
23+
- **clap-3.1.6**: A command line argument parser library. A crate used by many
24+
Rust programs.
2325
- **cranelift-codegen-0.82.1**: The largest crate from a code generator. Used by
24-
wasmtime.
26+
wasmtime. Stresses obligation processing, but less than `keccak`.
2527
- **diesel-1.4.8**: A type safe SQL query builder. Utilizes the type system to
2628
ensure a lot of invariants. Stresses anything related to resolving
2729
trait bounds, by having a lot of trait impls for a large number of different
@@ -38,7 +40,8 @@ They mostly consist of real-world crates.
3840
types, constants, and functions, but relatively little normal code. Stresses
3941
the parser. A very widely-used crate.
4042
- **regex-1.5.5**: A regular expression parser. Used by many Rust programs.
41-
- **ripgrep-13.0.0**: A line-oriented search tool. A widely-used utility.
43+
- **ripgrep-13.0.0**: A line-oriented search tool. A widely-used utility, and a
44+
binary crate.
4245
- **serde-1.0.136**: A serialization/deserialization crate. Used by many other
4346
Rust programs.
4447
- **serde_derive-1.0.136**: A proc-macro sub-crate used by `serde`. Used by
@@ -76,7 +79,7 @@ compiler in interesting ways.
7679
of code that caused exponential behavior in the past.
7780
- **deep-vector**: A test containing a single large vector of zeroes, which
7881
caused [poor performance](https://github.com/rust-lang/rust/issues/20936) in
79-
the past.
82+
the past. Stresses macro expansion and type inference.
8083
- **derive**: A large number of simple structs with a `#[derive]` attribute for common built-in traits such as Copy and Debug.
8184
- **externs**: A large number of extern functions has caused [slowdowns in the past](https://github.com/rust-lang/rust/pull/78448).
8285
- **helloworld-tiny**: A trivial program optimized with flags that should reduce binary size.
@@ -89,7 +92,7 @@ compiler in interesting ways.
8992
[severe performance regression](https://github.com/rust-lang/rust/issues/88862)
9093
when trying to normalize large opaque types with late-bound regions.
9194
- **keccak**: A cryptography algorithm. Contains a huge function with a very
92-
high number of locals and basic blocks.
95+
high number of locals and basic blocks, which stresses obligation processing.
9396
- **many-assoc-items**: Contains a struct with many associated items, which
9497
caused [quadratic behavior](https://github.com/rust-lang/rust/issues/68957)
9598
in the past.

0 commit comments

Comments
 (0)