mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
Remove benches from rustc_middle
These benches benchmark rust langauge features and not the compiler, so they seem to be in the wrong place here. They also all take <1ns, making them pretty useless. Looking at their git history, they just seem to have been carried around for many, many years. This commit ends their journey.
This commit is contained in:
parent
6f6010b08b
commit
ddf7982741
@ -1,54 +0,0 @@
|
||||
#![feature(test)]
|
||||
|
||||
extern crate test;
|
||||
|
||||
use test::Bencher;
|
||||
|
||||
// Static/dynamic method dispatch
|
||||
|
||||
struct Struct {
|
||||
field: isize,
|
||||
}
|
||||
|
||||
trait Trait {
|
||||
fn method(&self) -> isize;
|
||||
}
|
||||
|
||||
impl Trait for Struct {
|
||||
fn method(&self) -> isize {
|
||||
self.field
|
||||
}
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn trait_vtable_method_call(b: &mut Bencher) {
|
||||
let s = Struct { field: 10 };
|
||||
let t = &s as &dyn Trait;
|
||||
b.iter(|| t.method());
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn trait_static_method_call(b: &mut Bencher) {
|
||||
let s = Struct { field: 10 };
|
||||
b.iter(|| s.method());
|
||||
}
|
||||
|
||||
// Overhead of various match forms
|
||||
|
||||
#[bench]
|
||||
fn option_some(b: &mut Bencher) {
|
||||
let x = Some(10);
|
||||
b.iter(|| match x {
|
||||
Some(y) => y,
|
||||
None => 11,
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn vec_pattern(b: &mut Bencher) {
|
||||
let x = [1, 2, 3, 4, 5, 6];
|
||||
b.iter(|| match x {
|
||||
[1, 2, 3, ..] => 10,
|
||||
_ => 11,
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user