Title: [119201] trunk/Source/WebCore
Revision
119201
Author
[email protected]
Date
2012-06-01 01:34:54 -0700 (Fri, 01 Jun 2012)

Log Message

Web Inspector: add RenderArena sizes to the memory pie-chart
https://bugs.webkit.org/show_bug.cgi?id=87971

Reviewed by Pavel Feldman.

Added allocated and used sizes of page render arenas to the memory
report returned by the InspectorMemoryAgent. Total allocated size of
the inspected page's render arenas will be displayed on the memory
pie-chart.

* inspector/InspectorMemoryAgent.cpp:
(MemoryBlockName):
(WebCore):
(WebCore::renderTreeInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119200 => 119201)


--- trunk/Source/WebCore/ChangeLog	2012-06-01 08:32:29 UTC (rev 119200)
+++ trunk/Source/WebCore/ChangeLog	2012-06-01 08:34:54 UTC (rev 119201)
@@ -1,3 +1,23 @@
+2012-05-31  Yury Semikhatsky  <[email protected]>
+
+        Web Inspector: add RenderArena sizes to the memory pie-chart
+        https://bugs.webkit.org/show_bug.cgi?id=87971
+
+        Reviewed by Pavel Feldman.
+
+        Added allocated and used sizes of page render arenas to the memory
+        report returned by the InspectorMemoryAgent. Total allocated size of
+        the inspected page's render arenas will be displayed on the memory
+        pie-chart.
+
+        * inspector/InspectorMemoryAgent.cpp:
+        (MemoryBlockName):
+        (WebCore):
+        (WebCore::renderTreeInfo):
+        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+        * inspector/front-end/NativeMemorySnapshotView.js:
+        (WebInspector.MemoryBlockViewProperties._initialize):
+
 2012-05-30  Yury Semikhatsky  <[email protected]>
 
         Web Inspector: change type of injected script id from long to int

Modified: trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp (119200 => 119201)


--- trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp	2012-06-01 08:32:29 UTC (rev 119200)
+++ trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp	2012-06-01 08:34:54 UTC (rev 119201)
@@ -63,6 +63,8 @@
 static const char jsHeapAllocated[] = "JSHeapAllocated";
 static const char jsHeapUsed[] = "JSHeapUsed";
 static const char processPrivateMemory[] = "ProcessPrivateMemory";
+static const char renderTreeUsed[] = "RenderTreeUsed";
+static const char renderTreeAllocated[] = "RenderTreeAllocated";
 }
 
 namespace {
@@ -334,6 +336,22 @@
     return jsHeapAllocated.release();
 }
 
+static PassRefPtr<WebCore::TypeBuilder::Memory::MemoryBlock> renderTreeInfo(Page* page)
+{
+    ArenaSize arenaSize = page->renderTreeSize();
+
+    RefPtr<WebCore::TypeBuilder::Memory::MemoryBlock> renderTreeAllocated = WebCore::TypeBuilder::Memory::MemoryBlock::create().setName(MemoryBlockName::renderTreeAllocated);
+    renderTreeAllocated->setSize(static_cast<int>(arenaSize.allocated));
+
+    RefPtr<TypeBuilder::Array<WebCore::TypeBuilder::Memory::MemoryBlock> > children = TypeBuilder::Array<WebCore::TypeBuilder::Memory::MemoryBlock>::create();
+    RefPtr<WebCore::TypeBuilder::Memory::MemoryBlock> renderTreeUsed = WebCore::TypeBuilder::Memory::MemoryBlock::create().setName(MemoryBlockName::renderTreeUsed);
+    renderTreeUsed->setSize(static_cast<int>(arenaSize.treeSize));
+    children->addItem(renderTreeUsed);
+
+    renderTreeAllocated->setChildren(children);
+    return renderTreeAllocated.release();
+}
+
 void InspectorMemoryAgent::getProcessMemoryDistribution(ErrorString*, RefPtr<WebCore::TypeBuilder::Memory::MemoryBlock>& processMemory)
 {
     size_t privateBytes = 0;
@@ -344,6 +362,7 @@
 
     RefPtr<TypeBuilder::Array<WebCore::TypeBuilder::Memory::MemoryBlock> > children = TypeBuilder::Array<WebCore::TypeBuilder::Memory::MemoryBlock>::create();
     children->addItem(jsHeapInfo());
+    children->addItem(renderTreeInfo(m_page)); // TODO: collect for all pages?
     processMemory->setChildren(children);
 }
 

Modified: trunk/Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js (119200 => 119201)


--- trunk/Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js	2012-06-01 08:32:29 UTC (rev 119200)
+++ trunk/Source/WebCore/inspector/front-end/NativeMemorySnapshotView.js	2012-06-01 08:34:54 UTC (rev 119201)
@@ -201,6 +201,8 @@
     addBlock("rgba(240, 240, 250, 0.8)", "ProcessPrivateMemory", "Total");
     addBlock("rgba(250, 200, 200, 0.8)", "JSHeapAllocated", "_javascript_ heap");
     addBlock("rgba(200, 250, 200, 0.8)", "JSHeapUsed", "Used _javascript_ heap");
+    addBlock("rgba(250, 250, 150, 0.8)", "RenderTreeAllocated", "Render tree");
+    addBlock("rgba(200, 150, 150, 0.8)", "RenderTreeUsed", "Render tree used");
 }
 
 WebInspector.MemoryBlockViewProperties._forMemoryBlock = function(memoryBlock)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to