Time other passes of the pipeline

This commit is contained in:
Patrick Walton 2012-07-12 23:17:04 -07:00
parent 016c60e366
commit c35c5f2bc8
5 changed files with 30 additions and 21 deletions

View file

@ -40,10 +40,13 @@ fn Renderer<S: Sink send copy>(sink: S) -> chan<Msg> {
#debug("renderer: got render request"); #debug("renderer: got render request");
let draw_target = draw_target_ch.recv(); let draw_target = draw_target_ch.recv();
#debug("renderer: rendering"); #debug("renderer: rendering");
clear(draw_target);
draw_display_list(draw_target, display_list); do util::time::time("rendering") {
#debug("renderer: returning surface"); clear(draw_target);
sink.draw(draw_target_ch, draw_target); draw_display_list(draw_target, display_list);
#debug("renderer: returning surface");
sink.draw(draw_target_ch, draw_target);
}
} }
ExitMsg(response_ch) { ExitMsg(response_ch) {
response_ch.send(()); response_ch.send(());

View file

@ -40,17 +40,19 @@ fn Layout(renderer: Renderer) -> Layout {
#debug("layout: received layout request for:"); #debug("layout: received layout request for:");
node.dump(); node.dump();
node.initialize_style_for_subtree(); do util::time::time("layout") {
node.recompute_style_for_subtree(arc(copy styles)); node.initialize_style_for_subtree();
node.recompute_style_for_subtree(arc(copy styles));
let this_box = node.construct_boxes(); let this_box = node.construct_boxes();
this_box.dump(); this_box.dump();
this_box.apply_style_for_subtree(); this_box.apply_style_for_subtree();
this_box.reflow(px_to_au(800)); this_box.reflow(px_to_au(800));
let dlist = build_display_list(this_box); let dlist = build_display_list(this_box);
renderer.send(renderer::RenderMsg(dlist)); renderer.send(renderer::RenderMsg(dlist));
}
} }
} }
} }

View file

@ -13,7 +13,6 @@ import dom::event::{Event, ResizeEvent};
import layers::ImageLayer; import layers::ImageLayer;
import geom::size::Size2D; import geom::size::Size2D;
import std::cmp::fuzzy_eq; import std::cmp::fuzzy_eq;
import std::time::precise_time_ns;
import vec::push; import vec::push;
type OSMain = chan<Msg>; type OSMain = chan<Msg>;
@ -35,13 +34,6 @@ fn OSMain() -> OSMain {
} }
} }
fn time(msg: str, callback: fn()) {
let start_time = precise_time_ns();
callback();
let end_time = precise_time_ns();
#debug("%s took %u ms", msg, ((end_time - start_time) / 1000000u64) as uint);
}
fn mainloop(po: port<Msg>) { fn mainloop(po: port<Msg>) {
let key_handlers: @dvec<chan<()>> = @dvec(); let key_handlers: @dvec<chan<()>> = @dvec();
let event_listeners: @dvec<chan<Event>> = @dvec(); let event_listeners: @dvec<chan<Event>> = @dvec();
@ -117,7 +109,7 @@ fn mainloop(po: port<Msg>) {
#debug("osmain: drawing to screen"); #debug("osmain: drawing to screen");
do time("compositing") { do util::time::time("compositing") {
layers::rendergl::render_scene(context, *scene); layers::rendergl::render_scene(context, *scene);
} }

View file

@ -93,6 +93,7 @@ mod util {
mod tree; mod tree;
mod color; mod color;
mod unsafe; mod unsafe;
mod time;
} }
#[warn(no_non_implicitly_copyable_typarams)] #[warn(no_non_implicitly_copyable_typarams)]

11
src/servo/util/time.rs Normal file
View file

@ -0,0 +1,11 @@
// Timing functions.
import std::time::precise_time_ns;
fn time(msg: str, callback: fn()) {
let start_time = precise_time_ns();
callback();
let end_time = precise_time_ns();
#debug("%s took %u ms", msg, ((end_time - start_time) / 1000000u64) as uint);
}