diff options
-rw-r--r-- | src/servo/gfx/renderer.rs | 11 | ||||
-rw-r--r-- | src/servo/layout/layout_task.rs | 18 | ||||
-rw-r--r-- | src/servo/platform/osmain.rs | 10 | ||||
-rwxr-xr-x | src/servo/servo.rc | 1 | ||||
-rw-r--r-- | src/servo/util/time.rs | 11 |
5 files changed, 30 insertions, 21 deletions
diff --git a/src/servo/gfx/renderer.rs b/src/servo/gfx/renderer.rs index 7987d1a299c..0ea7fee3b71 100644 --- a/src/servo/gfx/renderer.rs +++ b/src/servo/gfx/renderer.rs @@ -40,10 +40,13 @@ fn Renderer<S: Sink send copy>(sink: S) -> chan<Msg> { #debug("renderer: got render request"); let draw_target = draw_target_ch.recv(); #debug("renderer: rendering"); - clear(draw_target); - draw_display_list(draw_target, display_list); - #debug("renderer: returning surface"); - sink.draw(draw_target_ch, draw_target); + + do util::time::time("rendering") { + clear(draw_target); + draw_display_list(draw_target, display_list); + #debug("renderer: returning surface"); + sink.draw(draw_target_ch, draw_target); + } } ExitMsg(response_ch) { response_ch.send(()); diff --git a/src/servo/layout/layout_task.rs b/src/servo/layout/layout_task.rs index a3af46c9177..45b64736309 100644 --- a/src/servo/layout/layout_task.rs +++ b/src/servo/layout/layout_task.rs @@ -40,17 +40,19 @@ fn Layout(renderer: Renderer) -> Layout { #debug("layout: received layout request for:"); node.dump(); - node.initialize_style_for_subtree(); - node.recompute_style_for_subtree(arc(copy styles)); + do util::time::time("layout") { + node.initialize_style_for_subtree(); + node.recompute_style_for_subtree(arc(copy styles)); - let this_box = node.construct_boxes(); - this_box.dump(); + let this_box = node.construct_boxes(); + this_box.dump(); - this_box.apply_style_for_subtree(); - this_box.reflow(px_to_au(800)); + this_box.apply_style_for_subtree(); + this_box.reflow(px_to_au(800)); - let dlist = build_display_list(this_box); - renderer.send(renderer::RenderMsg(dlist)); + let dlist = build_display_list(this_box); + renderer.send(renderer::RenderMsg(dlist)); + } } } } diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs index 848819fd7a5..e27937b213f 100644 --- a/src/servo/platform/osmain.rs +++ b/src/servo/platform/osmain.rs @@ -13,7 +13,6 @@ import dom::event::{Event, ResizeEvent}; import layers::ImageLayer; import geom::size::Size2D; import std::cmp::fuzzy_eq; -import std::time::precise_time_ns; import vec::push; 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>) { let key_handlers: @dvec<chan<()>> = @dvec(); let event_listeners: @dvec<chan<Event>> = @dvec(); @@ -117,7 +109,7 @@ fn mainloop(po: port<Msg>) { #debug("osmain: drawing to screen"); - do time("compositing") { + do util::time::time("compositing") { layers::rendergl::render_scene(context, *scene); } diff --git a/src/servo/servo.rc b/src/servo/servo.rc index 16547302b4e..a64ce32b954 100755 --- a/src/servo/servo.rc +++ b/src/servo/servo.rc @@ -93,6 +93,7 @@ mod util { mod tree; mod color; mod unsafe; + mod time; } #[warn(no_non_implicitly_copyable_typarams)] diff --git a/src/servo/util/time.rs b/src/servo/util/time.rs new file mode 100644 index 00000000000..b048c976e77 --- /dev/null +++ b/src/servo/util/time.rs @@ -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); +} + + |