зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #14272 - Fix energy profiling feature (from connorimes:fix-energy-profiling-feature); r=Manishearth
<!-- Please describe your changes on the following line: --> The `energy-profiling` feature was broken at some point when `#![deny(unsafe_code)]` was introduced to the `profile_traits` component. This PR sets `#[allow(unsafe_code)]` on the `energy` module. There is an additional commit (my original intention) to update the profiler logging to use the current `ProfilerCategory` enum values for (typically developer-only) performance/power analysis. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because it fixes is a compile error for a feature. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 1e42e4d9cec1a46a0a3009095c6030425c0a8845
This commit is contained in:
Родитель
cb579073d3
Коммит
600c23a426
|
@ -30,9 +30,13 @@ pub fn init() {
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutTreeBuilder);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutTreeBuilder);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutDamagePropagate);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutDamagePropagate);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutGeneratedContent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutGeneratedContent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutDisplayListSorting);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutFloatPlacementSpeculation);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutMain);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutMain);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutStoreOverflow);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutParallelWarmup);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutParallelWarmup);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutDispListBuild);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::LayoutDispListBuild);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::NetHTTPRequestResponse);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::PaintingPerTile);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::PaintingPerTile);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::PaintingPrepBuff);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::PaintingPrepBuff);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::Painting);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::Painting);
|
||||||
|
@ -43,16 +47,24 @@ pub fn init() {
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDevtoolsMsg);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDevtoolsMsg);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDocumentEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDocumentEvent);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDomEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptDomEvent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptEvaluate);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptEvent);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptFileRead);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptFileRead);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptImageCacheMsg);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptImageCacheMsg);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptInputEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptInputEvent);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptNetworkEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptNetworkEvent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptParseHTML);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptPlannedNavigation);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptResize);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptResize);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptSetScrollState);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptUpdateReplacedElement);
|
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptSetViewport);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptSetViewport);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptTimerEvent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptStylesheetLoad);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptUpdateReplacedElement);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptWebSocketEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptWebSocketEvent);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptWorkerEvent);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptWorkerEvent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptServiceWorkerEvent);
|
||||||
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ScriptParseXML);
|
||||||
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ApplicationHeartbeat);
|
maybe_create_heartbeat(&mut hbs, ProfilerCategory::ApplicationHeartbeat);
|
||||||
unsafe {
|
unsafe {
|
||||||
HBS = Some(mem::transmute(Box::new(hbs)));
|
HBS = Some(mem::transmute(Box::new(hbs)));
|
||||||
|
|
|
@ -21,6 +21,7 @@ extern crate serde_derive;
|
||||||
extern crate signpost;
|
extern crate signpost;
|
||||||
extern crate util;
|
extern crate util;
|
||||||
|
|
||||||
|
#[allow(unsafe_code)]
|
||||||
pub mod energy;
|
pub mod energy;
|
||||||
pub mod mem;
|
pub mod mem;
|
||||||
pub mod time;
|
pub mod time;
|
||||||
|
|
|
@ -30,9 +30,13 @@ HEARTBEAT_PROFILER_CATEGORIES = [
|
||||||
("LayoutTreeBuilder", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutTreeBuilder", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("LayoutDamagePropagate", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutDamagePropagate", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("LayoutGeneratedContent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutGeneratedContent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("LayoutDisplayListSorting", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("LayoutFloatPlacementSpeculation", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("LayoutMain", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutMain", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("LayoutStoreOverflow", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("LayoutParallelWarmup", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutParallelWarmup", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("LayoutDispListBuild", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("LayoutDispListBuild", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("NetHTTPRequestResponse", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("PaintingPerTile", 50),
|
("PaintingPerTile", 50),
|
||||||
("PaintingPrepBuff", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("PaintingPrepBuff", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("Painting", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("Painting", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
@ -43,18 +47,24 @@ HEARTBEAT_PROFILER_CATEGORIES = [
|
||||||
("ScriptDevtoolsMsg", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptDevtoolsMsg", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptDocumentEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptDocumentEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptDomEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptDomEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("ScriptEvaluate", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptFileRead", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptFileRead", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptImageCacheMsg", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptImageCacheMsg", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptInputEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptInputEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptNetworkEvent", 200),
|
("ScriptNetworkEvent", 200),
|
||||||
|
("ScriptParseHTML", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("ScriptPlannedNavigation", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptResize", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptResize", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("ScriptSetScrollState", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptSetViewport", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptSetViewport", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptTimerEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptTimerEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptStylesheetLoad", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptStylesheetLoad", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptUpdateReplacedElement", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptUpdateReplacedElement", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptWebSocketEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptWebSocketEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ScriptWorkerEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
("ScriptWorkerEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("ScriptServiceWorkerEvent", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
|
("ScriptParseXML", HEARTBEAT_DEFAULT_WINDOW_SIZE),
|
||||||
("ApplicationHeartbeat", 100),
|
("ApplicationHeartbeat", 100),
|
||||||
]
|
]
|
||||||
ENERGY_READER_BIN = "energymon-file-provider"
|
ENERGY_READER_BIN = "energymon-file-provider"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче