File tree Expand file tree Collapse file tree 3 files changed +23
-3
lines changed Expand file tree Collapse file tree 3 files changed +23
-3
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,16 @@ repository = "https://github.com/rust-lang/rustdoc-types"
99
1010[dependencies ]
1111serde  = {version =" 1"  , features =[" derive"  ]}
12+ rustc-hash  = {version =" 2"  , optional =true }
13+ 
14+ [features ]
15+ default  = []
16+ 
17+ #  Switch the hashmaps used in rustdoc-types to the FxHashMap from rustc-hash.
18+ # 
19+ #  This might improve performace if your are reading the rustdoc JSON from large
20+ #  crates like aws_sdk_ec2
21+ rustc-hash  = [" dep:rustc-hash"  ]
1222
1323[dev-dependencies ]
1424bincode  = " 1.3.3" 
Original file line number Diff line number Diff line change @@ -13,6 +13,18 @@ let krate: rustdoc_types::Crate = serde_json::from_str(&json_string)?;
1313println! (" the index has {} items"  , krate . index. len ());
1414``` 
1515
16+ For performance sensitive crates we suggest turning on the ` rustc-hash ` 
17+ feature. This switches all data structures from ` std::collections::HashMap `  to
18+ ` rustc-hash::FxHashMap `  which improves performance when reading big JSON files
19+ (like ` aws_sdk_rs ` 's).
20+ 
21+ ` cargo-semver-checks `  benchmarked this change with ` aws_sdk_ec2 ` 's JSON and
22+ [ observed a -3% improvement to the runtime] [ csc benchmarks ] . The performance
23+ here depends on how much time you spend querying the ` HashMap ` s, so as always,
24+ measure first c:
25+ 
26+ [ csc benchmarks ] : https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/rustc-hash.20and.20performance.20of.20rustdoc-types/near/474855731 
27+ 
1628## Contributing  
1729
1830This repo is a reexport of
Original file line number Diff line number Diff line change @@ -9,9 +9,7 @@ repo="rust"
99branch=" master" 
1010
1111curl -# https://raw.githubusercontent.com/${user} /${repo} /${branch} /src/rustdoc-json-types/lib.rs \
12-     |  sed ' s/rustc_hash::/std::collections::/g'   \
13-     |  sed ' s/FxHashMap/HashMap/g'   \
14-     |  sed ' s/^pub use /use /'   \
12+     |  sed ' /^pub type FxHashMap.*$/d'   \
1513    >  src/lib.rs
1614
1715curl -# https://raw.githubusercontent.com/${user} /${repo} /${branch} /src/rustdoc-json-types/tests.rs >  src/tests.rs
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments