36 lines
761 B
Rust
36 lines
761 B
Rust
#![feature(test)]
|
|
extern crate rustijvm;
|
|
extern crate test;
|
|
|
|
use std::sync::{Arc, Mutex};
|
|
use std::io::Cursor;
|
|
use test::Bencher;
|
|
|
|
fn run_calc(input: &'static str) {
|
|
let rc = Arc::new(Mutex::new(Cursor::new(Vec::new())));
|
|
let mut machine = rustijvm::machine::Machine::new_from_file("files/advanced/SimpleCalc.ijvm").unwrap();
|
|
machine.set_output(rc);
|
|
machine.set_input(Box::new(input.as_bytes()));
|
|
machine.run().unwrap();
|
|
}
|
|
|
|
#[bench]
|
|
fn factorial_2(b: &mut Bencher) {
|
|
b.iter(|| run_calc("2!?."));
|
|
}
|
|
|
|
#[bench]
|
|
fn factorial_5(b: &mut Bencher) {
|
|
b.iter(|| run_calc("5!?."));
|
|
}
|
|
|
|
#[bench]
|
|
fn factorial_7(b: &mut Bencher) {
|
|
b.iter(|| run_calc("7!?."));
|
|
}
|
|
|
|
#[bench]
|
|
fn factorial_10(b: &mut Bencher) {
|
|
b.iter(|| run_calc("10!?."));
|
|
}
|