Skip to content

Commit

Permalink
Rollup merge of rust-lang#131973 - jalil-salame:rustdoc-types-documen…
Browse files Browse the repository at this point in the history
…t-feature, r=aDotInTheVoid

fix(rustdoc-json-types): document rustc-hash feature

The `rustc-hash` feature is publicly exposed by the `rustdoc-types`. It is already documented in that crate's README and Cargo.toml, but we might as well add some information to the crate docs themselves c:

Follow up to:
- rust-lang#131936
- [rust-lang/rustdoc-types#42][1]

[1]: rust-lang/rustdoc-types#42

r? `@aDotInTheVoid`
  • Loading branch information
matthiaskrgr authored Oct 20, 2024
2 parents 2cded97 + 880d565 commit c2ed685
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/rustdoc-json-types/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
//!
//! These types are the public API exposed through the `--output-format json` flag. The [`Crate`]
//! struct is the root of the JSON blob and all other items are contained within.
//!
//! We expose a `rustc-hash` feature that is disabled by default. This feature switches the
//! [`std::collections::HashMap`] for [`rustc_hash::FxHashMap`] to improve the performance of said
//! `HashMap` in specific situations.
//!
//! `cargo-semver-checks` for example, saw a [-3% improvement][1] when benchmarking using the
//! `aws_sdk_ec2` JSON output (~500MB of JSON). As always, we recommend measuring the impact before
//! turning this feature on, as [`FxHashMap`][2] only concerns itself with hash speed, and may
//! increase the number of collisions.
//!
//! [1]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/rustc-hash.20and.20performance.20of.20rustdoc-types/near/474855731
//! [2]: https://crates.io/crates/rustc-hash

#[cfg(not(feature = "rustc-hash"))]
use std::collections::HashMap;
Expand Down

0 comments on commit c2ed685

Please sign in to comment.