Title: [138118] trunk/Source/WebCore
Revision
138118
Author
commit-qu...@webkit.org
Date
2012-12-18 22:42:06 -0800 (Tue, 18 Dec 2012)

Log Message

Web Inspector: [Chromium] profiler - differentiate between native code (program) and idle time
https://bugs.webkit.org/show_bug.cgi?id=88446

Patch by Eugene Klyuchnikov <eus...@chromium.org> on 2012-12-18
Reviewed by Pavel Feldman.

Now idleTime is supplied in profile object. In this patch, idleTime,
if any, is subtracted from "(program)" node, and new node "(idle)" is
injected as a top level node to profile.

* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.profileCallback): Call _injectIdleTimeNode
if non-zero idleTime is specified.
(WebInspector.CPUProfileView.prototype._injectIdleTimeNode): Lookup for
"(program)" node, modify it, add "(idle)" node.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (138117 => 138118)


--- trunk/Source/WebCore/ChangeLog	2012-12-19 06:34:08 UTC (rev 138117)
+++ trunk/Source/WebCore/ChangeLog	2012-12-19 06:42:06 UTC (rev 138118)
@@ -1,3 +1,20 @@
+2012-12-18  Eugene Klyuchnikov  <eus...@chromium.org>
+
+        Web Inspector: [Chromium] profiler - differentiate between native code (program) and idle time
+        https://bugs.webkit.org/show_bug.cgi?id=88446
+
+        Reviewed by Pavel Feldman.
+
+        Now idleTime is supplied in profile object. In this patch, idleTime,
+        if any, is subtracted from "(program)" node, and new node "(idle)" is
+        injected as a top level node to profile.
+
+        * inspector/front-end/CPUProfileView.js:
+        (WebInspector.CPUProfileView.profileCallback): Call _injectIdleTimeNode
+        if non-zero idleTime is specified.
+        (WebInspector.CPUProfileView.prototype._injectIdleTimeNode): Lookup for
+        "(program)" node, modify it, add "(idle)" node.
+
 2012-12-18  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r138097.

Modified: trunk/Source/WebCore/inspector/front-end/CPUProfileView.js (138117 => 138118)


--- trunk/Source/WebCore/inspector/front-end/CPUProfileView.js	2012-12-19 06:34:08 UTC (rev 138117)
+++ trunk/Source/WebCore/inspector/front-end/CPUProfileView.js	2012-12-19 06:42:06 UTC (rev 138118)
@@ -94,6 +94,10 @@
             return;
         }
         this.profile.head = profile.head;
+
+        if (profile.idleTime)
+            this._injectIdleTimeNode();
+
         this._assignParentsInProfile();
         this._changeView();
         this._updatePercentButton();
@@ -536,6 +540,39 @@
         }
     },
 
+    _injectIdleTimeNode: function()
+    {
+        var profile = ""
+        var idleTime = profile.idleTime;
+        var nodes = profile.head.children;
+
+        var programNode = {selfTime: 0};
+        for (var i = nodes.length - 1; i >= 0; --i) {
+            if (nodes[i].functionName === "(program)") {
+                programNode = nodes[i];
+                break;
+            }
+        }
+        var programTime = programNode.selfTime;
+        if (idleTime > programTime)
+            idleTime = programTime;
+        programTime = programTime - idleTime;
+        programNode.selfTime = programTime;
+        programNode.totalTime = programTime;
+        var idleNode = {
+            functionName: "(idle)",
+            url: null,
+            lineNumber: 0,
+            totalTime: idleTime,
+            selfTime: idleTime,
+            numberOfCalls: 0,
+            visible: true,
+            callUID: 0,
+            children: []
+        };
+        nodes.push(idleNode);
+    },
+
     __proto__: WebInspector.View.prototype
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to