Skip to content

Commit 24e7c3a

Browse files
committed
Use the time crate from crates.io instead of unstable std::time::Instant
1 parent 93a1853 commit 24e7c3a

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ libc = "0.2"
1212
getopts = "0.2"
1313
rustc-serialize = "0.3"
1414
term = "0.4"
15+
time = "0.1"

src/lib.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@
3434

3535
#![cfg_attr(feature = "asm_black_box", feature(asm))]
3636
#![feature(set_stdio)]
37-
#![feature(time2)]
3837

3938
extern crate getopts;
4039
extern crate rustc_serialize;
4140
extern crate term;
4241
extern crate libc;
42+
extern crate time;
4343

4444
pub use self::TestFn::*;
4545
pub use self::ColorConfig::*;
@@ -52,6 +52,7 @@ use self::OutputLocation::*;
5252
use stats::Stats;
5353
use rustc_serialize::Encodable;
5454
use term::Terminal;
55+
use time::{PreciseTime, Duration};
5556

5657
use std::any::Any;
5758
use std::cmp;
@@ -66,7 +67,6 @@ use std::path::PathBuf;
6667
use std::sync::mpsc::{channel, Sender};
6768
use std::sync::{Arc, Mutex};
6869
use std::thread;
69-
use std::time::{Instant, Duration};
7070

7171
// to be used by rustc to compile tests in libtest
7272
pub mod test {
@@ -1204,16 +1204,16 @@ impl Bencher {
12041204
pub fn iter<T, F>(&mut self, mut inner: F)
12051205
where F: FnMut() -> T
12061206
{
1207-
let start = Instant::now();
1207+
let start = PreciseTime::now();
12081208
let k = self.iterations;
12091209
for _ in 0..k {
12101210
black_box(inner());
12111211
}
1212-
self.dur = start.elapsed();
1212+
self.dur = start.to(PreciseTime::now());
12131213
}
12141214

12151215
pub fn ns_elapsed(&mut self) -> u64 {
1216-
self.dur.as_secs() * 1_000_000_000 + (self.dur.subsec_nanos() as u64)
1216+
self.dur.num_nanoseconds().unwrap() as u64
12171217
}
12181218

12191219
pub fn ns_per_iter(&mut self) -> u64 {
@@ -1255,10 +1255,10 @@ impl Bencher {
12551255
n = 1;
12561256
}
12571257

1258-
let mut total_run = Duration::new(0, 0);
1258+
let mut total_run = Duration::seconds(0);
12591259
let samples: &mut [f64] = &mut [0.0_f64; 50];
12601260
loop {
1261-
let loop_start = Instant::now();
1261+
let loop_start = PreciseTime::now();
12621262

12631263
for p in &mut *samples {
12641264
self.bench_n(n, |x| f(x));
@@ -1275,18 +1275,18 @@ impl Bencher {
12751275

12761276
stats::winsorize(samples, 5.0);
12771277
let summ5 = stats::Summary::new(samples);
1278-
let loop_run = loop_start.elapsed();
1278+
let loop_run = loop_start.to(PreciseTime::now());
12791279

12801280
// If we've run for 100ms and seem to have converged to a
12811281
// stable median.
1282-
if loop_run > Duration::from_millis(100) && summ.median_abs_dev_pct < 1.0 &&
1282+
if loop_run > Duration::milliseconds(100) && summ.median_abs_dev_pct < 1.0 &&
12831283
summ.median - summ5.median < summ5.median_abs_dev {
12841284
return summ5;
12851285
}
12861286

12871287
total_run = total_run + loop_run;
12881288
// Longest we ever run for is 3s.
1289-
if total_run > Duration::from_secs(3) {
1289+
if total_run > Duration::seconds(3) {
12901290
return summ5;
12911291
}
12921292

@@ -1304,15 +1304,15 @@ impl Bencher {
13041304

13051305
pub mod bench {
13061306
use std::cmp;
1307-
use std::time::Duration;
1307+
use time::Duration;
13081308
use super::{Bencher, BenchSamples};
13091309

13101310
pub fn benchmark<F>(f: F) -> BenchSamples
13111311
where F: FnMut(&mut Bencher)
13121312
{
13131313
let mut bs = Bencher {
13141314
iterations: 0,
1315-
dur: Duration::new(0, 0),
1315+
dur: Duration::seconds(0),
13161316
bytes: 0,
13171317
};
13181318

@@ -1332,7 +1332,7 @@ pub mod bench {
13321332
{
13331333
let mut bs = Bencher {
13341334
iterations: 0,
1335-
dur: Duration::new(0, 0),
1335+
dur: Duration::seconds(0),
13361336
bytes: 0,
13371337
};
13381338
bs.bench_n(1, f);

0 commit comments

Comments
 (0)