1番目
vectorの要素を添字記法で取り出す
use std::time::Instant;
fn main() {
let mut v = vec![];
for i in 0..100000000 {
v.push(i);
}
let start = Instant::now();
for i in 0..100000000 {
&v[i];
}
let end = start.elapsed();
println!(
"{}.{:03}秒経過しました。",
end.as_secs(),
end.subsec_nanos() / 1_000_000
);
}
結果
1回目: 5.891
2回目: 5.877
3回目: 6.057
2番目
getだけする
use std::time::Instant;
fn main() {
let mut v = vec![];
for i in 0..100000000 {
v.push(i);
}
let start = Instant::now();
for i in 0..100000000 {
v.get(i);
}
let end = start.elapsed();
println!(
"{}.{:03}秒経過しました。",
end.as_secs(),
end.subsec_nanos() / 1_000_000
);
}
結果
1回目: 6.836
2回目: 6.855
3回目: 6.827
3番目
getしてからunwrapする
use std::time::Instant;
fn main() {
let mut v = vec![];
for i in 0..100000000 {
v.push(i);
}
let start = Instant::now();
for i in 0..100000000 {
v.get(i).unwrap();
}
let end = start.elapsed();
println!(
"{}.{:03}秒経過しました。",
end.as_secs(),
end.subsec_nanos() / 1_000_000
);
}
結果
1回目: 7.599
2回目: 7.570
3回目: 7.451