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.

Reply via email to