mirror of
https://github.com/kmc7468/cs220.git
synced 2025-12-14 22:18:46 +00:00
Bump dependencies
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#![allow(deprecated)]
|
||||
|
||||
//! Parser.
|
||||
|
||||
use super::syntax::*;
|
||||
|
||||
34
src/bin/par_iter.rs
Normal file
34
src/bin/par_iter.rs
Normal file
@@ -0,0 +1,34 @@
|
||||
use std::time::Instant;
|
||||
|
||||
use rayon::prelude::*;
|
||||
|
||||
const SIZE: usize = 100_000_000;
|
||||
|
||||
fn sequential() {
|
||||
let _v = (0..SIZE)
|
||||
.into_iter()
|
||||
.filter_map(|x| if x % 2 == 0 { Some(x * 3) } else { None })
|
||||
.collect::<Vec<_>>();
|
||||
}
|
||||
|
||||
fn parallel() {
|
||||
let _v = (0..SIZE)
|
||||
.into_par_iter()
|
||||
.filter_map(|x| if x % 2 == 0 { Some(x * 3) } else { None })
|
||||
.collect::<Vec<_>>();
|
||||
}
|
||||
|
||||
fn bench<F>(name: &str, f: F)
|
||||
where
|
||||
F: FnOnce(),
|
||||
{
|
||||
let begin = Instant::now();
|
||||
f();
|
||||
let elapsed = begin.elapsed();
|
||||
println!("{}: {:.2?}", name, elapsed);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
bench("sequential", sequential);
|
||||
bench("parallel", parallel);
|
||||
}
|
||||
Reference in New Issue
Block a user