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)