mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-25 13:49:26 +00:00
41 lines
818 B
Rust
41 lines
818 B
Rust
#![feature(test)]
|
|
|
|
extern crate test;
|
|
|
|
use http::method::Method;
|
|
use test::Bencher;
|
|
|
|
fn make_all_methods() -> Vec<Vec<u8>> {
|
|
vec![
|
|
b"OPTIONS".to_vec(),
|
|
b"GET".to_vec(),
|
|
b"POST".to_vec(),
|
|
b"PUT".to_vec(),
|
|
b"DELETE".to_vec(),
|
|
b"HEAD".to_vec(),
|
|
b"TRACE".to_vec(),
|
|
b"CONNECT".to_vec(),
|
|
b"PATCH".to_vec(),
|
|
b"CUSTOM_SHORT".to_vec(),
|
|
b"CUSTOM_LONG_METHOD".to_vec(),
|
|
]
|
|
}
|
|
|
|
#[bench]
|
|
fn method_easy(b: &mut Bencher) {
|
|
let name = b"GET";
|
|
b.iter(|| {
|
|
Method::from_bytes(&name[..]).unwrap();
|
|
});
|
|
}
|
|
|
|
#[bench]
|
|
fn method_various(b: &mut Bencher) {
|
|
let all_methods = make_all_methods();
|
|
b.iter(|| {
|
|
for name in &all_methods {
|
|
Method::from_bytes(name.as_slice()).unwrap();
|
|
}
|
|
});
|
|
}
|