Add timing stuff

This commit is contained in:
Chris Hodapp 2020-04-01 21:43:35 -04:00
parent 89c0a5f3ae
commit cf6ae348c3

View File

@ -8,6 +8,8 @@ use crate::rule::{Rule, RuleFn, RuleEval, Child};
use crate::prim; use crate::prim;
use crate::util; use crate::util;
use std::time::Instant;
fn cube_thing() -> Rule { fn cube_thing() -> Rule {
// Quarter-turn in radians: // Quarter-turn in radians:
@ -432,6 +434,13 @@ pub fn main() {
fn run_test_iter(r: &Rc<Rule>, iters: usize, name: &str) { fn run_test_iter(r: &Rc<Rule>, iters: usize, name: &str) {
println!("Running {}...", name); println!("Running {}...", name);
let start = Instant::now();
let n = 100;
for i in 0..n {
Rule::to_mesh_iter(r.clone(), iters);
}
let elapsed = start.elapsed();
println!("DEBUG: {} ms per run", elapsed.as_millis() / n);
let (mesh, nodes) = Rule::to_mesh_iter(r.clone(), iters); let (mesh, nodes) = Rule::to_mesh_iter(r.clone(), iters);
println!("Evaluated {} rules", nodes); println!("Evaluated {} rules", nodes);
let fname = format!("{}.stl", name); let fname = format!("{}.stl", name);