servo/components
bors-servo d89e4f7991 Auto merge of #7179 - connorimes:add-heartbeats, r=larsbergstrom
Integrate with simple Heartbeats

This PR adds Heartbeats capability to servo.  Heartbeats are used for detailed performance and power/energy profiling.  We will add the power/energy readings in the future.

New dependencies are introduced which need in-depth reviews.  I'm the only one who has had eyes on any of this, and I have limited resources for testing cross-platform compatibility.
* https://github.com/libheartbeats/heartbeats-simple - provides native C libraries from a shared code base:
 * hbs[-static] - performance monitoring
 * hbs-acc[-static] - performance with accuracy monitoring
 * hbs-pow[-static] - performance with power/energy monitoring (the one we're using)
 * hbs-acc-pow[-static] - performance with accuracy and power/energy monitoring 
* https://github.com/connorimes/heartbeats-simple-sys provides rust wrappers for the native C libraries above - one crate for each + a common crate.  These link with the *-static versions of the heartbeats libraries.
* https://github.com/connorimes/heartbeats-simple-rust provides rust abstractions over the -sys crates above - one crate for each.

The new `heartbeats` module in the `profile` crate looks for environment variables telling it to use heartbeats for each ProfilerCategory and where to put log files.  (Of course, if somebody knows how to iterate over the enum instead of hardcoding each one, that would be fantastic.)  If the environment variables aren't set for particular categories, heartbeats aren't created or used.

An interface change is made in the `profile_traits` crate to pass both the start and end time in a `ProfilerMsg` instead of just the elapsed time.  Later we will add energy readings as well.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7179)
<!-- Reviewable:end -->
2015-08-22 17:23:50 -06:00
..
canvas sort all uses 2015-08-20 20:47:12 +08:00
canvas_traits sort all uses 2015-08-20 20:47:12 +08:00
compositing sort all uses 2015-08-20 20:47:12 +08:00
devtools sort all uses 2015-08-20 20:47:12 +08:00
devtools_traits sort all uses 2015-08-20 20:47:12 +08:00
gfx sort all uses 2015-08-20 20:47:12 +08:00
gfx_traits Layerize canvas 2015-05-20 19:10:50 +02:00
layout Auto merge of #7291 - pcwalton:has-layer-flag, r=mbrubeck 2015-08-22 15:56:05 -06:00
layout_traits sort all uses 2015-08-20 20:47:12 +08:00
msg sort all uses 2015-08-20 20:47:12 +08:00
net sort all uses 2015-08-20 20:47:12 +08:00
net_traits sort all uses 2015-08-20 20:47:12 +08:00
plugins sort all uses 2015-08-20 20:47:12 +08:00
profile Auto merge of #7179 - connorimes:add-heartbeats, r=larsbergstrom 2015-08-22 17:23:50 -06:00
profile_traits Auto merge of #7179 - connorimes:add-heartbeats, r=larsbergstrom 2015-08-22 17:23:50 -06:00
script Auto merge of #7315 - frewsxcv:python-is, r=SimonSapin 2015-08-22 09:26:34 -06:00
script_traits Fix existing syntactics nits. 2015-08-16 10:30:43 -04:00
servo Auto merge of #7179 - connorimes:add-heartbeats, r=larsbergstrom 2015-08-22 17:23:50 -06:00
style Make display: flex experimental. 2015-08-21 15:59:20 -07:00
util sort all uses 2015-08-20 20:47:12 +08:00
webdriver_server sort all uses 2015-08-20 20:47:12 +08:00
webdriver_traits Add support for switching frames with the webdriver API. 2015-06-01 23:18:55 +01:00