Dump traversal time with other style statistics.

This commit is contained in:
Bobby Holley 2017-02-14 16:13:21 -08:00
parent 5a624ff956
commit d7d6979144
3 changed files with 28 additions and 5 deletions

View file

@ -8,7 +8,8 @@
use context::TraversalStatistics;
use dom::{TElement, TNode};
use std::borrow::Borrow;
use std::borrow::BorrowMut;
use time;
use traversal::{DomTraversal, PerLevelTraversalData, PreTraverseToken};
/// Do a sequential DOM traversal for layout or styling, generic over `D`.
@ -18,6 +19,9 @@ pub fn traverse_dom<E, D>(traversal: &D,
where E: TElement,
D: DomTraversal<E>,
{
let dump_stats = TraversalStatistics::should_dump();
let start_time = if dump_stats { Some(time::precise_time_s()) } else { None };
debug_assert!(!traversal.is_parallel());
debug_assert!(token.should_traverse());
@ -62,8 +66,9 @@ pub fn traverse_dom<E, D>(traversal: &D,
}
// Dump statistics to stdout if requested.
let tlsc = tlc.borrow();
if TraversalStatistics::should_dump() {
if dump_stats {
let tlsc = tlc.borrow_mut();
tlsc.statistics.compute_traversal_time(start_time.unwrap());
println!("{}", tlsc.statistics);
}
}