Skip to content

[WIP] rustc_span: Symbol perf experiments #80420

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
wants to merge 7 commits into from

Conversation

petrochenkov
Copy link
Contributor

cc #79425

@rust-highfive
Copy link
Contributor

r? @varkor

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 27, 2020
@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Collaborator

bors commented Dec 27, 2020

⌛ Trying commit 8d21ca5460f295a97a5517b96dc19d278ef1e65d with merge f2658af4ef876e20781bd9d367daa3d4b5d56fef...

@petrochenkov petrochenkov added S-waiting-on-perf Status: Waiting on a perf run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 27, 2020
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11195
.................................................................................................... 9100/11195
.....................................................................................i......i....... 9200/11195
.................................................................................................... 9300/11195
........................iiiiii..iiiiii.i............................................................ 9400/11195
.................................................................................................... 9600/11195
.................................................................................................... 9700/11195
.................................................................................................... 9800/11195
.................................................................................................... 9900/11195
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]

 finished in 0.079 seconds
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i..i....ii...ii....ii..........iiii...........i...i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.41s

 finished in 2.495 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---
running 5 tests
FFF..
failures:

---- symbols::tests::check_dup_keywords stdout ----
thread 'symbols::tests::check_dup_keywords' panicked at 'duplicate key `"crate"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_symbol_and_keyword stdout ----
---- symbols::tests::check_dup_symbol_and_keyword stdout ----
thread 'symbols::tests::check_dup_symbol_and_keyword' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17

---- symbols::tests::check_dup_symbol stdout ----
---- symbols::tests::check_dup_symbol stdout ----
thread 'symbols::tests::check_dup_symbol' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17

failures:
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol_and_keyword

test result: FAILED. 2 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.02s

error: test failed, to rerun pass '-p rustc_macros --lib'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" " llvm" "--manifest-path" "/checkout/compiler/rustc/Cargo.toml" "-p" "rustc_macros" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:27:43

@bors
Copy link
Collaborator

bors commented Dec 27, 2020

☀️ Try build successful - checks-actions
Build commit: f2658af4ef876e20781bd9d367daa3d4b5d56fef (f2658af4ef876e20781bd9d367daa3d4b5d56fef)

@rust-timer
Copy link
Collaborator

Queued f2658af4ef876e20781bd9d367daa3d4b5d56fef with parent 76188b6, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (f2658af4ef876e20781bd9d367daa3d4b5d56fef): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Dec 27, 2020
@bjorn3
Copy link
Member

bjorn3 commented Dec 28, 2020

Up to 3.7% slowdown.

@petrochenkov
Copy link
Contributor Author

The results from slowing down Symbol::intern only (#80420 (comment)) are nearly identical to the results from the whole #79425 (#79425 (comment)), so the hypothesis in #79425 (comment) should be correct.

This means we either need a faster Symbol::static_intern, or a higher percent of hits in Symbol::static_intern to compensate for the potential second search.

@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Collaborator

bors commented Dec 28, 2020

⌛ Trying commit 7a85c533c293cd159937faf7e095848570a913d0 with merge 6d5202ee390b147711c841482f99201f2ee6ed58...

@petrochenkov petrochenkov added S-waiting-on-perf Status: Waiting on a perf run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 28, 2020
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11195
.................................................................................................... 9100/11195
.....................................................................................i......i....... 9200/11195
.................................................................................................... 9300/11195
........................iiiiii..iiiiii.i............................................................ 9400/11195
.................................................................................................... 9600/11195
.................................................................................................... 9700/11195
.................................................................................................... 9800/11195
.................................................................................................... 9900/11195
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii

 finished in 0.062 seconds
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i..i..ii....i.i....ii..........iiii.........i.....i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.33s

 finished in 2.394 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---
running 5 tests
FFF..
failures:

---- symbols::tests::check_dup_symbol_and_keyword stdout ----
thread 'symbols::tests::check_dup_symbol_and_keyword' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_keywords stdout ----
---- symbols::tests::check_dup_keywords stdout ----
thread 'symbols::tests::check_dup_keywords' panicked at 'duplicate key `"crate"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_symbol stdout ----
---- symbols::tests::check_dup_symbol stdout ----
thread 'symbols::tests::check_dup_symbol' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17


failures:
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol_and_keyword

test result: FAILED. 2 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s

error: test failed, to rerun pass '-p rustc_macros --lib'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" " llvm" "--manifest-path" "/checkout/compiler/rustc/Cargo.toml" "-p" "rustc_macros" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:26:08

@bors
Copy link
Collaborator

bors commented Dec 28, 2020

☀️ Try build successful - checks-actions
Build commit: 6d5202ee390b147711c841482f99201f2ee6ed58 (6d5202ee390b147711c841482f99201f2ee6ed58)

@rust-timer
Copy link
Collaborator

Queued 6d5202ee390b147711c841482f99201f2ee6ed58 with parent aef92d4, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (6d5202ee390b147711c841482f99201f2ee6ed58): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Dec 30, 2020
@petrochenkov petrochenkov removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 31, 2020
@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (9552eb5d4fde685ead823b14a7ec197603502200): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Dec 31, 2020
@bjorn3
Copy link
Member

bjorn3 commented Dec 31, 2020

Most changes are now within noise but overall it is a slight (<0.1%) improvement.

@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 31, 2020
@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Collaborator

bors commented Jan 1, 2021

⌛ Trying commit 8809118 with merge 5d62d7cb25649b110a890b314aa67bb788879011...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11238
.................................................................................................... 9100/11238
.................................................................................................... 9200/11238
..................................i......i.......................................................... 9300/11238
.........................................................................iiiiii..iiiiii.i........... 9400/11238
.................................................................................................... 9600/11238
.................................................................................................... 9700/11238
.................................................................................................... 9800/11238
.................................................................................................... 9900/11238
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii

Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
 finished in 0.097 seconds
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i...i.ii....i.i....ii...........iiii........i.....i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.42s

 finished in 2.502 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---

   Doc-tests alloc

running 540 tests
double free or corruption (!prev)
error: test failed, to rerun pass '--doc'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/library/test/Cargo.toml" "-p" "alloc" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:19:57

@bors
Copy link
Collaborator

bors commented Jan 1, 2021

☀️ Try build successful - checks-actions
Build commit: 5d62d7cb25649b110a890b314aa67bb788879011 (5d62d7cb25649b110a890b314aa67bb788879011)

@rust-timer
Copy link
Collaborator

Queued 5d62d7cb25649b110a890b314aa67bb788879011 with parent a609fb4, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 1, 2021
@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (5d62d7cb25649b110a890b314aa67bb788879011): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jan 1, 2021
@petrochenkov petrochenkov deleted the bettersyms2 branch February 22, 2025 19:20
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants