286e2b14a5
perf-turbo.py merges a perf data file and a turbofan trace file into a single json object which can then be piped to a file and uploaded to turbolizer to display the profiling data in the disassembly. With the changes, turbolizer now shows the event counts for instruction in percentage form and with heatmap-stype colouring. Multiple different events can be recorded at once with a new drop-down menu to select which event to view the counts of. The documentation has been updated with instructions. Using the script is optional and turbolizer retains previous functionality if a trace without profiling data is uploaded. BUG=None Review-Url: https://codereview.chromium.org/2174803002 Cr-Commit-Position: refs/heads/master@{#38124}
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
// Copyright 2015 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
"use strict";
|
|
|
|
class View {
|
|
constructor(id, broker) {
|
|
this.divElement = d3.select("#" + id);
|
|
this.divNode = this.divElement[0][0];
|
|
this.parentNode = this.divNode.parentNode;
|
|
this.hide();
|
|
}
|
|
|
|
isScrollable() {
|
|
return false;
|
|
}
|
|
|
|
show(data, rememberedSelection) {
|
|
this.parentNode.appendChild(this.divElement[0][0]);
|
|
this.initializeContent(data, rememberedSelection);
|
|
this.resizeToParent();
|
|
this.divElement.attr(VISIBILITY, 'visible');
|
|
}
|
|
|
|
resizeToParent() {
|
|
var view = this;
|
|
var documentElement = document.documentElement;
|
|
var y;
|
|
if (this.parentNode.clientHeight)
|
|
y = Math.max(this.parentNode.clientHeight, documentElement.clientHeight);
|
|
else
|
|
y = documentElement.clientHeight;
|
|
this.parentNode.style.height = y + 'px';
|
|
}
|
|
|
|
hide() {
|
|
this.divElement.attr(VISIBILITY, 'hidden');
|
|
this.deleteContent();
|
|
this.parentNode.removeChild(this.divNode);
|
|
}
|
|
|
|
detachSelection() {
|
|
return null;
|
|
}
|
|
}
|