Skip to content

Conversation

@scottmcm
Copy link
Member

Seeing whether this helps the icounts seen in #148769 (comment)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 20, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 20, 2026

r? @joboet

rustbot has assigned @joboet.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@scottmcm
Copy link
Member Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 20, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 20, 2026
Use `repeat_packed` when calculating layouts in `RawVec`
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 20, 2026

☀️ Try build successful (CI)
Build commit: 7b0717a (7b0717ad3a8fc50e01531752c08b1c9fe792a9e5, parent: d940e56841ddcc05671ead99290e35ff2e98369f)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (7b0717a): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

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

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
1.2% [0.6%, 1.7%] 2
Regressions ❌
(secondary)
0.3% [0.0%, 1.5%] 10
Improvements ✅
(primary)
-0.3% [-0.8%, -0.1%] 30
Improvements ✅
(secondary)
-0.4% [-1.9%, -0.1%] 44
All ❌✅ (primary) -0.2% [-0.8%, 1.7%] 32

Max RSS (memory usage)

Results (secondary -3.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.9% [2.9%, 2.9%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.7% [-5.3%, -4.3%] 5
All ❌✅ (primary) - - 0

Cycles

Results (secondary 3.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
6.0% [2.4%, 10.7%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.5% [-2.8%, -2.2%] 2
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.0%, secondary -0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 2
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.1% [-0.1%, -0.0%] 5
Improvements ✅
(secondary)
-0.4% [-0.6%, -0.0%] 7
All ❌✅ (primary) -0.0% [-0.1%, 0.1%] 7

Bootstrap: 473.058s -> 476.789s (0.79%)
Artifact size: 383.29 MiB -> 383.54 MiB (0.07%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jan 20, 2026
@scottmcm
Copy link
Member Author

Yup, looks like overall that's enough to undo the regression from #148769 (comment) -- for example, that was 12 red in doc, this is 19 green in doc.

(That said, I see no reason that doc icounts should have been so impacted by this, that seems weird, and there's probably something that someone could investigate about it, but I won't be.)

@joboet
Copy link
Member

joboet commented Jan 20, 2026

Great!
@bors r+

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 20, 2026

📌 Commit 73a43c5 has been approved by joboet

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 Jan 20, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 21, 2026
Use `repeat_packed` when calculating layouts in `RawVec`

Seeing whether this helps the icounts seen in #148769 (comment)
@rust-log-analyzer

This comment has been minimized.

@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 21, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 21, 2026

💔 Test for f8f606f failed: CI. Failed job:

@rust-bors rust-bors bot 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 Jan 21, 2026
@rust-bors rust-bors bot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jan 21, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 22, 2026
Use `repeat_packed` when calculating layouts in `RawVec`

Seeing whether this helps the icounts seen in #148769 (comment)
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
REPOSITORY                                   TAG       IMAGE ID       CREATED       SIZE
ghcr.io/dependabot/dependabot-updater-core   latest    63ba4a2ff346   13 days ago   775MB
=> Removing docker images...
Deleted Images:
untagged: ghcr.io/dependabot/dependabot-updater-core:latest
untagged: ghcr.io/dependabot/dependabot-updater-core@sha256:830c840ea4b8c27b6919bdd47c017030adeb538f226e1cdfd386490a622b9218
deleted: sha256:63ba4a2ff3467a98ac6c8610fece2cdc9893e2af6c18111e57618f8949749b82
deleted: sha256:77617fa265a7311b1c0502e01ff6157d25228d91f6cddc21d7901eb440d0adee
deleted: sha256:0bd8abdbb1f7c0453b4bc76cce6ecf0a3b9e4b5d0c8ceeb63652e91a63cab4a1
deleted: sha256:4e9913397e051a70593edc1662de159778ce1bf65132295639da0e119913b53f
deleted: sha256:3e54edb2fef4b1c1393a2928bfa1017c22cc578f5f3eef677580662e8d2e79ea
---
Initialized empty Git repository in /checkout/obj/build/ct/diesel/.git/
fatal: Could not parse object '3db7c17c5b069656ed22750e84d6498c8ab5b81d'.
From https://github.com/diesel-rs/diesel
 * branch            3db7c17c5b069656ed22750e84d6498c8ab5b81d -> FETCH_HEAD
HEAD is now at 3db7c17 Merge pull request #4917 from LucaCappelletti94/allow_tables_to_appear_in_same_query-modules
    Updating crates.io index
     Locking 261 packages to latest compatible versions
      Adding cargo_metadata v0.19.2 (available: v0.23.1)
      Adding darling v0.21.3 (available: v0.23.0)
      Adding generic-array v0.14.7 (available: v0.14.9)
      Adding getrandom v0.2.17 (available: v0.3.4)
      Adding libsqlite3-sys v0.35.0 (available: v0.36.0)
      Adding sqlite-wasm-vfs v0.1.1 (available: v0.2.0)
      Adding sqlparser v0.59.0 (available: v0.60.0)
---
test sqlite::connection::stmt::tests::check_out_of_bounds_bind_does_not_panic_on_drop ... ok
test sqlite::connection::sqlite_value::tests::can_convert_all_values ... ok
test sqlite::connection::tests::correctly_handle_empty_query ... ok
test sqlite::connection::tests::register_aggregate_function ... ok
test sqlite::connection::row::tests::fun_with_row_iters ... ok
test sqlite::connection::tests::database_serializes_and_deserializes_successfully ... ok
test sqlite::connection::tests::register_aggregate_function_returns_finalize_default_on_empty_set ... ok
test sqlite::connection::tests::register_aggregate_multiarg_function ... ok
test sqlite::connection::tests::register_custom_function ... ok
test sqlite::connection::tests::register_collation_function ... ok
test sqlite::connection::tests::register_multiarg_function ... ok
---
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::ExpressionMethods::not_between (line 422) ... ok
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::ExpressionMethods::ne_all (line 169) ... ok
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::NullableExpressionMethods::assume_not_null (line 644) ... ok
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::NullableExpressionMethods::nullable (line 599) - compile ... ok
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::NullableExpressionMethods::assume_not_null (line 671) ... ok
test diesel/src/expression_methods/global_expression_methods.rs - expression_methods::global_expression_methods::NullableExpressionMethods::assume_not_null (line 706) ... ok
test diesel/src/expression_methods/json_expression_methods.rs - expression_methods::json_expression_methods::AnyJsonExpressionMethods::retrieve_as_text (line 18) ... ok
test diesel/src/expression_methods/text_expression_methods.rs - expression_methods::text_expression_methods::TextExpressionMethods::like (line 74) ... ok
test diesel/src/expression_methods/text_expression_methods.rs - expression_methods::text_expression_methods::TextExpressionMethods::concat (line 14) ... ok
test diesel/src/expression_methods/text_expression_methods.rs - expression_methods::text_expression_methods::TextExpressionMethods::not_like (line 110) ... ok
test diesel/src/insertable.rs - insertable::Insertable::insert_into (line 41) ... ok
test diesel/src/lib.rs - helper_types::InnerJoinQuerySource (line 571) ... ok
---
test diesel/src/query_builder/functions.rs - query_builder::functions::replace_into (line 497) ... ok
test diesel/src/query_builder/functions.rs - query_builder::functions::update (line 25) ... ok
test diesel/src/query_builder/functions.rs - query_builder::functions::sql_query (line 551) ... ok
test diesel/src/query_builder/functions.rs - query_builder::functions::update (line 49) ... ok
test diesel/src/query_builder/has_query.rs - query_builder::has_query::HasQuery (line 27) ... ok
test diesel/src/query_builder/has_query.rs - query_builder::has_query::HasQuery (line 56) ... ok
test diesel/src/query_builder/insert_statement/mod.rs - query_builder::insert_statement::IncompleteInsertStatement<T,Op>::default_values (line 68) ... ok
test diesel/src/query_builder/insert_statement/mod.rs - query_builder::insert_statement::InsertStatement<T,U,Op>::returning (line 282) ... ok
test diesel/src/query_builder/mod.rs - query_builder::debug_query (line 394) ... ok
test diesel/src/query_builder/sql_query.rs - query_builder::sql_query::SqlQuery<Inner>::bind (line 47) ... ok
test diesel/src/query_builder/sql_query.rs - query_builder::sql_query::UncheckedBind<Query,Value,ST>::sql (line 234) ... ok
---
test diesel/src/sqlite/connection/mod.rs - sqlite::connection::SqliteConnection (line 96) - compile fail ... ok
test diesel/src/sqlite/connection/mod.rs - sqlite::connection::SqliteConnection::immediate_transaction (line 325) ... ok
test diesel/src/sqlite/connection/mod.rs - sqlite::connection::SqliteConnection::exclusive_transaction (line 354) ... ok
test diesel/src/sqlite/connection/mod.rs - sqlite::connection::SqliteConnection::register_collation (line 500) ... ok
test diesel/src/sqlite/expression/expression_methods.rs - sqlite::expression::expression_methods::SqliteAnyJsonExpressionMethods::retrieve_as_object_sqlite (line 107) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json (line 24) ... ok
test diesel/src/sqlite/expression/expression_methods.rs - sqlite::expression::expression_methods::SqliteExpressionMethods::is (line 27) ... ok
test diesel/src/sqlite/expression/expression_methods.rs - sqlite::expression::expression_methods::SqliteExpressionMethods::is_not (line 62) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_array_0 (line 1385) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_array_1 (line 1385) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_array_2 (line 1385) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_array_length (line 109) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_array_length_with_path (line 176) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_error_position (line 253) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_group_array (line 931) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_group_array (line 967) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_group_object (line 1203) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_group_object (line 1230) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_object_0 (line 1094) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_object_1 (line 1094) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_object_2 (line 1094) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_patch (line 1627) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_pretty (line 342) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_pretty_with_indentation (line 472) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_quote (line 872) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_remove_0 (line 1489) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_remove_1 (line 1489) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_remove_2 (line 1489) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_type (line 755) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_type_with_path (line 802) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_valid (line 633) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::json_valid_with_flags (line 693) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb (line 65) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_array_0 (line 1437) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_array_2 (line 1437) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_array_1 (line 1437) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_group_array (line 1010) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_group_array (line 1047) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_group_object (line 1323) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_group_object (line 1296) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_object_0 (line 1146) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_object_1 (line 1146) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_patch (line 1707) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_object_2 (line 1146) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_remove_0 (line 1563) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_remove_1 (line 1563) ... ok
test diesel/src/sqlite/expression/functions.rs - sqlite::expression::functions::jsonb_remove_2 (line 1563) ... ok
test diesel/src/upsert/on_conflict_extension.rs - upsert::on_conflict_extension::IncompleteOnConflict<Stmt,Target>::do_update (line 431) ... ok
test diesel/src/upsert/on_conflict_extension.rs - upsert::on_conflict_extension::IncompleteOnConflict<Stmt,Target>::do_update (line 383) ... ok
test diesel/src/upsert/on_conflict_extension.rs - upsert::on_conflict_extension::IncompleteOnConflict<Stmt,Target>::do_update (line 517) ... ok
test diesel/src/upsert/on_conflict_extension.rs - upsert::on_conflict_extension::IncompleteOnConflict<Stmt,Target>::do_update (line 557) ... ok
test diesel/src/upsert/on_conflict_extension.rs - upsert::on_conflict_extension::IncompleteOnConflict<Stmt,Target>::do_update (line 475) ... ok
---
    SUCCESS for generator 'f64 subnormal'. 4194305/4194305 passed in 86.91066657s
30/30 tests succeeded in 113.416970855s (30 passed, 0 failed, 0 stopped)
[TIMING:end] test::TestFloatParse { build_compiler: Compiler { stage: 2, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu } -- 145.711
Build completed successfully in 1:03:18
# The build-std suite is off by default because it is uncommonly slow
# and memory-hungry.
##[group]Building bootstrap
    Finished `dev` profile [unoptimized] target(s) in 0.10s
##[endgroup]
warning: failed to connect to jobserver from environment variable `MAKEFLAGS=" -j4 --jobserver-auth=3,4"`: cannot open file descriptor 3 from the jobserver environment variable value: Bad file descriptor (os error 9)
  |
---
failures:

---- oneshot::send_before_recv_timeout stdout ----

thread 'oneshot::send_before_recv_timeout' (274980) panicked at library/std/tests/sync/oneshot.rs:100:5:
assertion failed: start.elapsed() < timeout
stack backtrace:
   0: std::panicking::panic_handler
             at /checkout/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /checkout/library/core/src/panicking.rs:80:14
   2: core::panicking::panic
             at /checkout/library/core/src/panicking.rs:150:5
   3: oneshot::send_before_recv_timeout
             at library/std/tests/sync/oneshot.rs:100:5
   4: oneshot::send_before_recv_timeout::{closure#0}
             at library/std/tests/sync/oneshot.rs:87:30
   5: <{closure@library/std/tests/sync/oneshot.rs:87:1: 101:2} as std::ops::FnOnce<()>>::call_once - shim
             at /checkout/library/core/src/ops/function.rs:250:5
   6: <fn() -> std::result::Result<(), std::string::String> as std::ops::FnOnce<()>>::call_once - shim(fn() -> std::result::Result<(), std::string::String>)
             at /checkout/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
---- oneshot::send_before_recv_timeout stdout end ----
---

error: test failed, to rerun pass `-p std --test sync`
Bootstrap failed while executing `miri --stage 2 library/std -- --skip fs:: --skip net:: --skip process:: --skip sys::`
Build completed unsuccessfully in 0:14:57
make: *** [Makefile:61: check-aux] Error 1
  local time: Thu Jan 22 07:32:41 UTC 2026
  network time: Thu, 22 Jan 2026 07:32:41 GMT
##[error]Process completed with exit code 2.
##[group]Run echo "disk usage:"
echo "disk usage:"

@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 22, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 22, 2026

💔 Test for 551d78c failed: CI. Failed job:

@scottmcm
Copy link
Member Author

@bors retry oneshot::send_before_recv_timeout

@rust-bors rust-bors bot 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 Jan 22, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Jan 23, 2026
Use `repeat_packed` when calculating layouts in `RawVec`

Seeing whether this helps the icounts seen in #148769 (comment)
@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 23, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 23, 2026

💔 Test for 9b1aba6 failed: CI. Failed job:

@scottmcm
Copy link
Member Author

@bors retry (dist-x86_64-msvc looks like it just disappeared? No raw logs.)

@rust-bors rust-bors bot 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 Jan 23, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 23, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 23, 2026

☀️ Test successful - CI
Approved by: joboet
Duration: 3h 23m 46s
Pushing 9283d59 to main...

@rust-bors rust-bors bot merged commit 9283d59 into rust-lang:main Jan 23, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 23, 2026
@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 1655912 (parent) -> 9283d59 (this PR)

Test differences

Show 3 test diffs

3 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 9283d592deb2887311b9fa95027fd78c2172e554 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-various: 5902.0s -> 6768.6s (+14.7%)
  2. x86_64-gnu-nopt: 7687.9s -> 8782.0s (+14.2%)
  3. x86_64-gnu-llvm-21-1: 3666.7s -> 4147.8s (+13.1%)
  4. dist-apple-various: 4138.0s -> 4609.0s (+11.4%)
  5. dist-sparcv9-solaris: 5066.4s -> 5593.7s (+10.4%)
  6. arm-android: 5315.8s -> 5847.9s (+10.0%)
  7. i686-msvc-1: 10390.4s -> 9551.7s (-8.1%)
  8. i686-gnu-1: 7018.1s -> 7562.0s (+7.7%)
  9. x86_64-gnu-tools: 3576.8s -> 3310.0s (-7.5%)
  10. dist-aarch64-apple: 7087.8s -> 7605.4s (+7.3%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (9283d59): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
1.2% [0.7%, 1.8%] 2
Regressions ❌
(secondary)
0.4% [0.2%, 1.6%] 9
Improvements ✅
(primary)
-0.2% [-0.8%, -0.2%] 35
Improvements ✅
(secondary)
-0.4% [-1.8%, -0.1%] 43
All ❌✅ (primary) -0.2% [-0.8%, 1.8%] 37

Max RSS (memory usage)

Results (primary 2.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.4% [2.4%, 2.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.4% [2.4%, 2.4%] 1

Cycles

Results (primary -5.4%, secondary 0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.7% [2.2%, 3.2%] 2
Improvements ✅
(primary)
-5.4% [-11.7%, -2.1%] 3
Improvements ✅
(secondary)
-2.2% [-2.3%, -2.0%] 2
All ❌✅ (primary) -5.4% [-11.7%, -2.1%] 3

Binary size

Results (primary -0.2%, secondary -0.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 2
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.2% [-0.4%, -0.0%] 12
Improvements ✅
(secondary)
-0.5% [-0.6%, -0.0%] 5
All ❌✅ (primary) -0.2% [-0.4%, 0.1%] 14

Bootstrap: 472.43s -> 471.36s (-0.23%)
Artifact size: 383.24 MiB -> 383.50 MiB (0.07%)

@panstromek
Copy link
Contributor

Results match pre-merge run. Net positive, addresses previous regression, see #151389 (comment)

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Jan 23, 2026
@scottmcm scottmcm deleted the vec-repeat branch January 24, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants