Revision: 21832
Author: [email protected]
Date: Fri Jun 13 09:07:56 2014 UTC
Log: Mark timed range in the profile plot.
[email protected]
Review URL: https://codereview.chromium.org/333643006
http://code.google.com/p/v8/source/detail?r=21832
Modified:
/branches/bleeding_edge/src/log.cc
/branches/bleeding_edge/src/log.h
/branches/bleeding_edge/src/runtime.cc
/branches/bleeding_edge/tools/profviz/composer.js
=======================================
--- /branches/bleeding_edge/src/log.cc Thu Jun 12 17:06:24 2014 UTC
+++ /branches/bleeding_edge/src/log.cc Fri Jun 13 09:07:56 2014 UTC
@@ -1074,6 +1074,16 @@
msg.Append("code-deopt,%ld,%d\n", since_epoch, code->CodeSize());
msg.WriteToLogFile();
}
+
+
+void Logger::CurrentTimeEvent() {
+ if (!log_->IsEnabled()) return;
+ ASSERT(FLAG_log_internal_timer_events);
+ Log::MessageBuilder msg(log_);
+ int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
+ msg.Append("current-time,%ld\n", since_epoch);
+ msg.WriteToLogFile();
+}
void Logger::TimerEvent(StartEnd se, const char* name) {
=======================================
--- /branches/bleeding_edge/src/log.h Thu Jun 12 17:06:24 2014 UTC
+++ /branches/bleeding_edge/src/log.h Fri Jun 13 09:07:56 2014 UTC
@@ -290,6 +290,7 @@
enum StartEnd { START, END };
void CodeDeoptEvent(Code* code);
+ void CurrentTimeEvent();
void TimerEvent(StartEnd se, const char* name);
=======================================
--- /branches/bleeding_edge/src/runtime.cc Thu Jun 12 15:08:33 2014 UTC
+++ /branches/bleeding_edge/src/runtime.cc Fri Jun 13 09:07:56 2014 UTC
@@ -9636,6 +9636,7 @@
RUNTIME_FUNCTION(Runtime_DateCurrentTime) {
HandleScope scope(isolate);
ASSERT(args.length() == 0);
+ if (FLAG_log_timer_events) LOG(isolate, CurrentTimeEvent());
// According to ECMA-262, section 15.9.1, page 117, the precision of
// the number in a Date object representing a particular instant in
=======================================
--- /branches/bleeding_edge/tools/profviz/composer.js Tue Jun 10 14:46:30
2014 UTC
+++ /branches/bleeding_edge/tools/profviz/composer.js Fri Jun 13 09:07:56
2014 UTC
@@ -43,6 +43,7 @@
var kY1Offset = 11; // Offset for stack frame vs. event
lines.
var kDeoptRow = 7; // Row displaying deopts.
+ var kGetTimeHeight = 0.5; // Height of marker displaying timed
part.
var kMaxDeoptLength = 4; // Draw size of the largest deopt.
var kPauseLabelPadding = 5; // Padding for pause time labels.
var kNumPauseLabels = 7; // Number of biggest pauses to label.
@@ -136,6 +137,7 @@
var code_map = new CodeMap();
var execution_pauses = [];
var deopts = [];
+ var gettime = [];
var event_stack = [];
var last_time_stamp = [];
for (var i = 0; i < kNumThreads; i++) {
@@ -273,6 +275,10 @@
var processCodeDeoptEvent = function(time, size) {
deopts.push(new Deopt(time, size));
}
+
+ var processCurrentTimeEvent = function(time) {
+ gettime.push(time);
+ }
var processSharedLibrary = function(name, start, end) {
var code_entry = new CodeMap.CodeEntry(end - start, name);
@@ -316,6 +322,8 @@
processor: processCodeDeleteEvent },
'code-deopt': { parsers: [parseTimeStamp, parseInt],
processor: processCodeDeoptEvent },
+ 'current-time': { parsers: [parseTimeStamp],
+ processor: processCurrentTimeEvent },
'tick': { parsers: [parseInt, parseTimeStamp,
null, null, parseInt, 'var-args'],
processor: processTickEvent }
@@ -391,12 +399,15 @@
output("set xtics out nomirror");
output("unset key");
- function DrawBarBase(color, start, end, top, bottom) {
+ function DrawBarBase(color, start, end, top, bottom, transparency) {
obj_index++;
command = "set object " + obj_index + " rect";
command += " from " + start + ", " + top;
command += " to " + end + ", " + bottom;
command += " fc rgb \"" + color + "\"";
+ if (transparency) {
+ command += " fs transparent solid " + transparency;
+ }
output(command);
}
@@ -429,6 +440,13 @@
deopt.time + 10 * pause_tolerance,
deopt.size / max_deopt_size * kMaxDeoptLength);
}
+
+ // Plot current time polls.
+ if (gettime.length > 1) {
+ var start = gettime[0];
+ var end = gettime.pop();
+ DrawBarBase("#0000BB", start, end, kGetTimeHeight, 0, 0.2);
+ }
// Name Y-axis.
var ytics = [];
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.