LoginSignup
2
0

More than 3 years have passed since last update.

rustのvectorの要素を取り出す際のパフォーマンス測定

Last updated at Posted at 2019-05-23

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
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0