Revision: 13370
Author:   [email protected]
Date:     Mon Jan 14 04:59:41 2013
Log: The time spent in GCPrologue callbacks and GCEpilogue callbacks should be measured as EXTERNAL time

BUG=

Review URL: https://codereview.chromium.org/11817044
Patch from Kentaro Hara <[email protected]>.
http://code.google.com/p/v8/source/detail?r=13370

Modified:
 /branches/bleeding_edge/src/heap.cc

=======================================
--- /branches/bleeding_edge/src/heap.cc Wed Jan  9 07:47:53 2013
+++ /branches/bleeding_edge/src/heap.cc Mon Jan 14 04:59:41 2013
@@ -892,9 +892,12 @@
   GCType gc_type =
collector == MARK_COMPACTOR ? kGCTypeMarkSweepCompact : kGCTypeScavenge;

-  for (int i = 0; i < gc_prologue_callbacks_.length(); ++i) {
-    if (gc_type & gc_prologue_callbacks_[i].gc_type) {
-      gc_prologue_callbacks_[i].callback(gc_type, kNoGCCallbackFlags);
+  {
+    GCTracer::Scope scope(tracer, GCTracer::Scope::EXTERNAL);
+    for (int i = 0; i < gc_prologue_callbacks_.length(); ++i) {
+      if (gc_type & gc_prologue_callbacks_[i].gc_type) {
+        gc_prologue_callbacks_[i].callback(gc_type, kNoGCCallbackFlags);
+      }
     }
   }

@@ -1002,10 +1005,13 @@
         amount_of_external_allocated_memory_;
   }

-  GCCallbackFlags callback_flags = kNoGCCallbackFlags;
-  for (int i = 0; i < gc_epilogue_callbacks_.length(); ++i) {
-    if (gc_type & gc_epilogue_callbacks_[i].gc_type) {
-      gc_epilogue_callbacks_[i].callback(gc_type, callback_flags);
+  {
+    GCTracer::Scope scope(tracer, GCTracer::Scope::EXTERNAL);
+    GCCallbackFlags callback_flags = kNoGCCallbackFlags;
+    for (int i = 0; i < gc_epilogue_callbacks_.length(); ++i) {
+      if (gc_type & gc_epilogue_callbacks_[i].gc_type) {
+        gc_epilogue_callbacks_[i].callback(gc_type, callback_flags);
+      }
     }
   }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to