Auto merge of #10995 - rzambre:master, r=larsbergstrom

Interval + CSV time-profiling

This PR fixes #10886. The -p option can be followed by either an interval number or a CSV filename.
* In the interval profiling, the profiler output would be spitted out to the terminal periodically.
Example usage: **./mach run -p 1 http://www.google.com** will print the time-profiling output to the terminal every second.

* In the CSV file profiling, a CSV file will be generate upon termination of servo.
Example usage: **./mach run -x -o out.png -p out.csv http://www.google.com** will generate out.csv upon termination of Servo.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10995)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-05-11 17:19:53 -07:00
commit d4315855aa
9 changed files with 214 additions and 92 deletions

View file

@ -117,7 +117,7 @@ impl Browser {
let (compositor_proxy, compositor_receiver) =
window.create_compositor_channel();
let supports_clipboard = window.supports_clipboard();
let time_profiler_chan = profile_time::Profiler::create(opts.time_profiler_period,
let time_profiler_chan = profile_time::Profiler::create(&opts.time_profiling,
opts.time_profiler_trace_path.clone());
let mem_profiler_chan = profile_mem::Profiler::create(opts.mem_profiler_period);
let devtools_chan = opts.devtools_port.map(|port| {