Skip to content

Conversation

aDotInTheVoid
Copy link
Member

@aDotInTheVoid aDotInTheVoid commented Apr 26, 2023

This lets us know how much time is spent in json specific code, and how much performance we could gain by using a different serialization format.

For aws-sdk-ec2, it takes 0.7s, out of a 43s build (of which 6s is spent in json specific code), and makes a 173M json file

$ cargo +rust_stage2 rustdoc -p aws-sdk-ec2 -- -Zunstable-options -w json -Ztime-passes
 Documenting aws-sdk-ec2 v0.26.0 (/home/gh-aDotInTheVoid/aws-sdk-rust/sdk/ec2)
time:   5.229; rss:   64MB ->  891MB ( +827MB)  expand_crate
time:   5.230; rss:   61MB ->  891MB ( +830MB)  macro_expand_crate
time:   0.256; rss:  891MB ->  891MB (   +0MB)  AST_validation
time:   0.025; rss:  891MB ->  891MB (   +1MB)  finalize_imports
time:   0.093; rss:  891MB ->  891MB (   +0MB)  compute_effective_visibilities
time:   0.122; rss:  891MB ->  891MB (   +0MB)  finalize_macro_resolutions
time:   2.442; rss:  891MB -> 1188MB ( +297MB)  late_resolve_crate
time:   0.120; rss: 1188MB -> 1190MB (   +2MB)  resolve_check_unused
time:   0.211; rss: 1190MB -> 1190MB (   +0MB)  resolve_postprocess
time:   3.017; rss:  891MB -> 1190MB ( +299MB)  resolve_crate
time:   8.520; rss:   61MB -> 1181MB (+1120MB)  prepare_outputs
time:   0.152; rss: 1181MB -> 1181MB (   +0MB)  complete_gated_feature_checking
time:   0.539; rss: 1633MB -> 1632MB (   -1MB)  drop_ast
time:  15.492; rss:   58MB -> 1621MB (+1563MB)  type_collecting
time:   1.503; rss: 1621MB -> 1705MB (  +84MB)  item_types_checking
time:   1.274; rss: 1705MB -> 1726MB (  +21MB)  crate_lints
time:   1.275; rss: 1705MB -> 1726MB (  +21MB)  missing_docs
time:   0.281; rss: 1726MB -> 1726MB (   +0MB)  check_mod_attrs
time:   0.433; rss: 1744MB -> 1750MB (   +6MB)  clean_crate
time:  11.581; rss: 1750MB -> 2107MB ( +357MB)  collect_synthetic_impls
time:   0.019; rss: 2107MB -> 2107MB (   +0MB)  collect_items_for_trait_impls
time:  12.588; rss: 1750MB -> 2139MB ( +389MB)  collect-trait-impls
time:   0.197; rss: 2139MB -> 2139MB (   +0MB)  check_doc_test_visibility
time:   0.281; rss: 2139MB -> 2150MB (  +11MB)  strip-hidden
time:   0.260; rss: 2150MB -> 2150MB (   +0MB)  strip-private
warning: unresolved link to `date`
 --> sdk/ec2/src/client/describe_instances.rs:7:11184
  |
7 | ...te of the instance (for example, shows "User Initiated [date]" when you stop or terminate the instance). Similar to the state-reason-code filter.<...
  |                                                            ^^^^ no item named `date` in scope
  |
  = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
  = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default

time:   0.363; rss: 2150MB -> 2150MB (   +0MB)  collect-intra-doc-links
time:   0.946; rss: 2150MB -> 2150MB (   +0MB)  propagate-doc-cfg
time:   0.494; rss: 2150MB -> 2152MB (   +2MB)  run-lints
time:   0.658; rss: 2152MB -> 2163MB (  +11MB)  create_format_cache
time:  34.818; rss:   58MB -> 2163MB (+2105MB)  run_global_ctxt
time:   0.016; rss: 2163MB -> 2163MB (   +0MB)  create_renderer(json)
time:   0.723; rss: 2780MB -> 2780MB (   +0MB)  rustdoc_json_serialization
time:   2.216; rss: 2399MB -> 2599MB ( +199MB)  renderer_after_krate(json)
time:   6.639; rss: 2163MB -> 2417MB ( +254MB)  render_json
time:   0.312; rss: 2417MB -> 2071MB ( -346MB)  free_global_ctxt
warning: `aws-sdk-ec2` (lib doc) generated 1 warning
    Finished dev [unoptimized + debuginfo] target(s) in 43.06s

(Zulip Discussion)

r? @GuillaumeGomez

@rustbot rustbot added A-rustdoc-json Area: Rustdoc JSON backend S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Apr 26, 2023
@GuillaumeGomez
Copy link
Member

Nice! Should improve things a bit already. r=me once CI pass

@aDotInTheVoid
Copy link
Member Author

@bors r=GuillaumeGomez rollup

@bors
Copy link
Collaborator

bors commented Apr 26, 2023

📌 Commit 2b7dd08 has been approved by GuillaumeGomez

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 26, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 26, 2023
…iaskrgr

Rollup of 10 pull requests

Successful merges:

 - rust-lang#108760 (Add lint to deny diagnostics composed of static strings)
 - rust-lang#109444 (Change tidy error message for TODOs)
 - rust-lang#110419 (Spelling library)
 - rust-lang#110550 (Suggest deref on comparison binop RHS even if type is not Copy)
 - rust-lang#110641 (Add new rustdoc book chapter to describe in-doc settings)
 - rust-lang#110798 (pass `unused_extern_crates` in `librustdoc::doctest::make_test`)
 - rust-lang#110819 (simplify TrustedLen impls)
 - rust-lang#110825 (diagnostics: add test case for already-solved issue)
 - rust-lang#110835 (Make some region folders a little stricter.)
 - rust-lang#110847 (rustdoc-json: Time serialization.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 63bccce into rust-lang:master Apr 26, 2023
@rustbot rustbot added this to the 1.71.0 milestone Apr 26, 2023
@aDotInTheVoid aDotInTheVoid deleted the rdj-time-serialization branch April 27, 2023 15:50
@aDotInTheVoid aDotInTheVoid restored the rdj-time-serialization branch April 27, 2023 15:50
@aDotInTheVoid aDotInTheVoid deleted the rdj-time-serialization branch April 27, 2023 15:50
@aDotInTheVoid aDotInTheVoid restored the rdj-time-serialization branch April 27, 2023 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-rustdoc-json Area: Rustdoc JSON backend S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants