#![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!?.")); }