mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
Auto merge of #3638 - saethlin:big-alloc-bench, r=RalfJung
Add a benchmark for creating large uninit allocations Extracted from https://github.com/rust-lang/miri/issues/3637 I used this program to confirm that https://github.com/rust-lang/rust/pull/125633 has the desired effect.
This commit is contained in:
commit
ec5327d0b7
7
src/tools/miri/bench-cargo-miri/big-allocs/Cargo.lock
Normal file
7
src/tools/miri/bench-cargo-miri/big-allocs/Cargo.lock
Normal file
@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "big-allocs"
|
||||
version = "0.1.0"
|
8
src/tools/miri/bench-cargo-miri/big-allocs/Cargo.toml
Normal file
8
src/tools/miri/bench-cargo-miri/big-allocs/Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "big-allocs"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
13
src/tools/miri/bench-cargo-miri/big-allocs/src/main.rs
Normal file
13
src/tools/miri/bench-cargo-miri/big-allocs/src/main.rs
Normal file
@ -0,0 +1,13 @@
|
||||
//! This is a regression test for https://github.com/rust-lang/miri/issues/3637.
|
||||
//! `Allocation`s are backed by a `Box<[u8]>`, which we create using `alloc_zeroed`, which should
|
||||
//! make very large allocations cheap. But then we also need to not clone those `Allocation`s, or
|
||||
//! we end up slow anyway.
|
||||
|
||||
fn main() {
|
||||
// We can't use too big of an allocation or this code will encounter an allocation failure in
|
||||
// CI. Since the allocation can't be huge, we need to do a few iterations so that the effect
|
||||
// we're trying to measure is clearly visible above the interpreter's startup time.
|
||||
for _ in 0..10 {
|
||||
drop(Vec::<u8>::with_capacity(512 * 1024 * 1024));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user