about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJalil David Salamé Messina <jalil.salame@gmail.com>2024-10-20 18:28:14 +0200
committerJalil David Salamé Messina <jalil.salame@gmail.com>2024-10-20 18:31:29 +0200
commit880d565df1590b01ba9b7b38145692069d43f4cc (patch)
tree838a3fd5ae0a4caeee369bc6f25e04e1453bf525
parentbfab34af4c5bfbcc9168064857bbec826a60a0b9 (diff)
downloadrust-880d565df1590b01ba9b7b38145692069d43f4cc.tar.gz
rust-880d565df1590b01ba9b7b38145692069d43f4cc.zip
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:
- #131936
- [rust-lang/rustdoc-types#42][1]

[1]: https://github.com/rust-lang/rustdoc-types/pull/42
-rw-r--r--src/rustdoc-json-types/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/rustdoc-json-types/lib.rs b/src/rustdoc-json-types/lib.rs
index c4e142342a8..33ec59dad5b 100644
--- a/src/rustdoc-json-types/lib.rs
+++ b/src/rustdoc-json-types/lib.rs
@@ -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;