Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(313)

Unified Diff: perf_insights/perf_insights_examples/map_startup_info.html

Issue 1290323003: Create a mapper to compute browser and renderer startup durations. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Answered Nat, added tests, added SkipValue. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: perf_insights/perf_insights_examples/map_startup_info.html
diff --git a/perf_insights/perf_insights_examples/map_startup_info.html b/perf_insights/perf_insights_examples/map_startup_info.html
new file mode 100644
index 0000000000000000000000000000000000000000..29960448b0b87fcc757f17cd2c8a3feea2d6e7a8
--- /dev/null
+++ b/perf_insights/perf_insights_examples/map_startup_info.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML>
+<!--
+Copyright (c) 2015 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+<link rel="import" href="/perf_insights/value/value.html">
+<link rel="import" href="/perf_insights/map_function.html">
+<link rel="import" href="/tracing/base/range.html">
+<link rel="import" href="/tracing/extras/chrome/chrome_browser_helper.html">
+
+<script>
+tr.exportTo('pie', function() {
+ function mapStartupInfo(results, run_info, model) {
+ var startupIRs = model.interaction_records.filter(function(ir) {
+ return ir instanceof tr.e.rail.LoadInteractionRecord &&
+ ir.name === 'Startup';
+ });
+ // Find the Startup IRs in the browser and renderer processes.
+ var helper = tr.e.audits.ChromeBrowserHelper;
+ var browser_startup = new tr.b.Range();
+ var renderer_startup = new tr.b.Range();
+ startupIRs.forEach(function(ir) {
+ ir.associatedEvents.toArray().forEach(function(event) {
+ if (!event.getProcess)
+ return;
+ var process = event.getProcess();
+ var end = event.start + event.duration;
+ if (helper.isBrowserProcess(process))
nduca 2015/08/14 22:28:49 nit: this looks like you're referring to an on an
beaudoin 2015/08/18 16:16:54 Done.
+ event.addBoundsToRange(browser_startup);
+ if (helper.isRendererProcess(process))
+ event.addBoundsToRange(renderer_startup);
+ });
+ });
+
+ var startup_info = {};
+ if (!browser_startup.isEmpty)
nduca 2015/08/14 22:28:49 i think it would be easier on the data processing
beaudoin 2015/08/18 16:16:54 Done.
+ startup_info['browserStartupDuration'] = browser_startup.range;
+ if (!renderer_startup.isEmpty)
+ startup_info['rendererStartupDuration'] = renderer_startup.range;
+
+ if (Object.keys(startup_info).length === 0) {
+ results.addValue(new pi.v.SkipValue(run_info));
nduca 2015/08/14 22:28:49 you'll wanna say what result name was skipped, e.g
beaudoin 2015/08/18 16:16:54 Done.
+ } else {
+ results.addValue(new pi.v.DictValue(
+ run_info,
+ 'startup_info',
+ startup_info));
+ }
+ }
+
+ pi.MapFunction.register(mapStartupInfo);
+
+ // Exporting for tests.
+ return {
+ mapStartupInfo: mapStartupInfo
+ };
+});
+</script>

Powered by Google App Engine
This is Rietveld 408576698