We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f826641 commit a1a04e0Copy full SHA for a1a04e0
library/alloc/benches/vec.rs
@@ -548,6 +548,22 @@ fn bench_in_place_zip_iter_mut(b: &mut Bencher) {
548
black_box(data);
549
}
550
551
+pub fn vec_cast<T, U>(input: Vec<T>) -> Vec<U> {
552
+ input.into_iter().map(|e| unsafe { std::mem::transmute_copy(&e) }).collect()
553
+}
554
+
555
+#[bench]
556
+fn bench_transmute(b: &mut Bencher) {
557
+ let mut vec = vec![10u32; 100];
558
+ b.bytes = 800; // 2 casts x 4 bytes x 100
559
+ b.iter(|| {
560
+ let v = std::mem::take(&mut vec);
561
+ let v = black_box(vec_cast::<u32, i32>(v));
562
+ let v = black_box(vec_cast::<i32, u32>(v));
563
+ vec = v;
564
+ });
565
566
567
#[derive(Clone)]
568
struct Droppable(usize);
569
0 commit comments