Index: tools/profviz/worker.js |
diff --git a/tools/profviz/worker.js b/tools/profviz/worker.js |
index 5211d851d2559b2a48847013010cbd9249262f0e..60a557f982d0302e75b21ab73269bc33d43f0dda 100644 |
--- a/tools/profviz/worker.js |
+++ b/tools/profviz/worker.js |
@@ -41,8 +41,13 @@ function log(text) { |
} |
-function display(content) { |
- self.postMessage({ "call" : "display", "args" : content}); |
+function displayplot(content) { |
+ self.postMessage({ "call" : "displayplot", "args" : content}); |
+} |
+ |
+ |
+function displayprof(content) { |
+ self.postMessage({ "call" : "displayprof", "args" : content}); |
} |
@@ -84,13 +89,42 @@ function run(args) { |
content_lines = content.split("\n"); |
}); |
+ time("Producing statistical profile", |
+ function() { |
+ var profile = ""; |
+ print = function(text) { profile += text + "\n"; }; |
+ // Dummy entries provider, as we cannot call nm. |
+ var entriesProvider = new UnixCppEntriesProvider("", ""); |
+ var targetRootFS = ""; |
+ var separateIc = false; |
+ var callGraphSize = 5; |
+ var ignoreUnknown = true; |
+ var stateFilter = null; |
+ var snapshotLogProcessor = null; |
+ var range = range_start_override + "," + range_end_override; |
+ |
+ var tickProcessor = new TickProcessor(entriesProvider, |
+ separateIc, |
+ callGraphSize, |
+ ignoreUnknown, |
+ stateFilter, |
+ snapshotLogProcessor, |
+ distortion, |
+ range); |
+ for (var i = 0; i < content_lines.length; i++) { |
+ tickProcessor.processLogLine(content_lines[i]); |
+ } |
+ tickProcessor.printStatistics(); |
+ displayprof(profile); |
+ }); |
+ |
var input_file_name = "input_temp"; |
var output_file_name = "output.svg"; |
var psc = new PlotScriptComposer(resx, resy); |
var objects = 0; |
- time("Analyzing data (" + content_lines.length + " entries)", |
+ time("Collecting events (" + content_lines.length + " entries)", |
function() { |
var line_cursor = 0; |
var input = function() { return content_lines[line_cursor++]; }; |
@@ -103,7 +137,7 @@ function run(args) { |
time("Assembling plot script", |
function() { |
var plot_script = ""; |
- var output = function(output) { plot_script += output + "\n"; }; |
+ var output = function(text) { plot_script += text + "\n"; }; |
output("set terminal svg size " + resx + "," + resy + |
" enhanced font \"Helvetica,10\""); |
output("set output \""+ output_file_name + "\""); |
@@ -115,10 +149,10 @@ function run(args) { |
FS.createDataFile("/", input_file_name, arrc); |
}); |
- time("Running Gnuplot (" + objects + " objects)", |
+ time("Running gnuplot (" + objects + " objects)", |
function() { Module.run([input_file_name]); }); |
- display(FS.findObject(output_file_name)); |
+ displayplot(FS.findObject(output_file_name)); |
} |
@@ -131,4 +165,3 @@ var Module = { |
self.postMessage({"call": "error", "args": text}); |
}, |
}; |
- |