Changeset 124208 in webkit


Ignore:
Timestamp:
Jul 31, 2012, 8:53:15 AM (13 years ago)
Author:
loislo@chromium.org
Message:

Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
https://bugs.webkit.org/show_bug.cgi?id=92751

Reviewed by Yury Semikhatsky.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • inspector/InspectorAllInOne.cpp:
  • inspector/InspectorMemoryAgent.cpp:

(WebCore):

  • inspector/MemoryInstrumentationImpl.cpp: Added.

(WebCore):
(WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
(WebCore::MemoryInstrumentationImpl::processDeferredInstrumentedPointers):
(WebCore::MemoryInstrumentationImpl::countObjectSize):
(WebCore::MemoryInstrumentationImpl::deferInstrumentedPointer):
(WebCore::MemoryInstrumentationImpl::visited):
(WebCore::MemoryInstrumentationImpl::selfSize):

  • inspector/MemoryInstrumentationImpl.h: Added.

(WebCore):
(MemoryInstrumentationImpl):
(WebCore::MemoryInstrumentationImpl::totalTypeSize):

Location:
trunk/Source/WebCore
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r124193 r124208  
    15341534    inspector/InspectorWorkerAgent.cpp
    15351535    inspector/InstrumentingAgents.cpp
     1536    inspector/MemoryInstrumentationImpl.cpp
    15361537    inspector/NetworkResourcesData.cpp
    15371538    inspector/PageConsoleAgent.cpp
  • trunk/Source/WebCore/ChangeLog

    r124207 r124208  
     12012-04-06  Ilya Tikhonovsky  <loislo@chromium.org>
     2
     3        Web Inspector: extract MemoryInstrumentationImpl into separate files for future reusing in unit tests
     4        https://bugs.webkit.org/show_bug.cgi?id=92751
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * CMakeLists.txt:
     9        * GNUmakefile.list.am:
     10        * Target.pri:
     11        * WebCore.gypi:
     12        * WebCore.vcproj/WebCore.vcproj:
     13        * inspector/InspectorAllInOne.cpp:
     14        * inspector/InspectorMemoryAgent.cpp:
     15        (WebCore):
     16        * inspector/MemoryInstrumentationImpl.cpp: Added.
     17        (WebCore):
     18        (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
     19        (WebCore::MemoryInstrumentationImpl::processDeferredInstrumentedPointers):
     20        (WebCore::MemoryInstrumentationImpl::countObjectSize):
     21        (WebCore::MemoryInstrumentationImpl::deferInstrumentedPointer):
     22        (WebCore::MemoryInstrumentationImpl::visited):
     23        (WebCore::MemoryInstrumentationImpl::selfSize):
     24        * inspector/MemoryInstrumentationImpl.h: Added.
     25        (WebCore):
     26        (MemoryInstrumentationImpl):
     27        (WebCore::MemoryInstrumentationImpl::totalTypeSize):
     28
    1292012-07-31  Mario Sanchez Prada  <msanchez@igalia.com>
    230
  • trunk/Source/WebCore/GNUmakefile.list.am

    r124207 r124208  
    28182818        Source/WebCore/inspector/InstrumentingAgents.cpp \
    28192819        Source/WebCore/inspector/InstrumentingAgents.h \
     2820        Source/WebCore/inspector/MemoryInstrumentationImpl.cpp \
     2821        Source/WebCore/inspector/MemoryInstrumentationImpl.h \
    28202822        Source/WebCore/inspector/NetworkResourcesData.cpp \
    28212823        Source/WebCore/inspector/NetworkResourcesData.h \
  • trunk/Source/WebCore/Target.pri

    r124193 r124208  
    780780    inspector/InspectorWorkerAgent.cpp \
    781781    inspector/InstrumentingAgents.cpp \
     782    inspector/MemoryInstrumentationImpl.cpp \
    782783    inspector/NetworkResourcesData.cpp \
    783784    inspector/PageConsoleAgent.cpp \
     
    18841885    inspector/InspectorWorkerAgent.h \
    18851886    inspector/InstrumentingAgents.h \
     1887    inspector/MemoryInstrumentationImpl.h \
    18861888    inspector/NetworkResourcesData.h \
    18871889    inspector/PageConsoleAgent.h \
  • trunk/Source/WebCore/WebCore.gypi

    r124193 r124208  
    28872887            'inspector/InstrumentingAgents.cpp',
    28882888            'inspector/InstrumentingAgents.h',
     2889            'inspector/MemoryInstrumentationImpl.cpp',
     2890            'inspector/MemoryInstrumentationImpl.h',
    28892891            'inspector/NetworkResourcesData.cpp',
    28902892            'inspector/NetworkResourcesData.h',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r124193 r124208  
    7495674956                        </File>
    7495774957                        <File
     74958                                RelativePath="..\inspector\MemoryInstrumentationImpl.cpp"
     74959                                >
     74960                                <FileConfiguration
     74961                                        Name="Release|Win32"
     74962                                        ExcludedFromBuild="true"
     74963                                        >
     74964                                        <Tool
     74965                                                Name="VCCLCompilerTool"
     74966                                        />
     74967                                </FileConfiguration>
     74968                                <FileConfiguration
     74969                                        Name="Production|Win32"
     74970                                        ExcludedFromBuild="true"
     74971                                        >
     74972                                        <Tool
     74973                                                Name="VCCLCompilerTool"
     74974                                        />
     74975                                </FileConfiguration>
     74976                        </File>
     74977                        <File
     74978                                RelativePath="..\inspector\MemoryInstrumentationImpl.h"
     74979                                >
     74980                        </File>
     74981                        <File
    7495874982                                RelativePath="..\inspector\NetworkResourcesData.cpp"
    7495974983                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r124193 r124208  
    85888588                4F707A9711EF679400ACDA69 /* InspectorBackendDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBackendDispatcher.cpp; sourceTree = "<group>"; };
    85898589                4F707A9811EF679400ACDA69 /* InspectorBackendDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorBackendDispatcher.h; sourceTree = "<group>"; };
     8590                4F8562F0152F5BD100FAE776 /* MemoryInstrumentationImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryInstrumentationImpl.cpp; sourceTree = "<group>"; };
     8591                4F8562F1152F5BD100FAE776 /* MemoryInstrumentationImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryInstrumentationImpl.h; sourceTree = "<group>"; };
    85908592                4FA3B908125CD12100300BAD /* InspectorState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorState.cpp; sourceTree = "<group>"; };
    85918593                4FA3B909125CD12200300BAD /* InspectorState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorState.h; sourceTree = "<group>"; };
     
    1463214634                                1C81BA050E97348300266E07 /* JavaScriptCallFrame.idl */,
    1463314635                                BCC64F5F0DCFB84E0081EF3B /* localizedStrings.js */,
     14636                                4F8562F0152F5BD100FAE776 /* MemoryInstrumentationImpl.cpp */,
     14637                                4F8562F1152F5BD100FAE776 /* MemoryInstrumentationImpl.h */,
    1463414638                                59C27F04138D28C10079B7E2 /* NetworkResourcesData.cpp */,
    1463514639                                59C27F06138D28CF0079B7E2 /* NetworkResourcesData.h */,
  • trunk/Source/WebCore/inspector/InspectorAllInOne.cpp

    r120769 r124208  
    7070#include "InspectorWorkerAgent.cpp"
    7171#include "InstrumentingAgents.cpp"
     72#include "MemoryInstrumentationImpl.cpp"
    7273#include "NetworkResourcesData.cpp"
    7374#include "PageConsoleAgent.cpp"
  • trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp

    r124017 r124208  
    4545#include "InstrumentingAgents.h"
    4646#include "MemoryCache.h"
    47 #include "MemoryInstrumentation.h"
     47#include "MemoryInstrumentationImpl.h"
    4848#include "MemoryUsageSupport.h"
    4949#include "Node.h"
     
    102102namespace {
    103103
    104 typedef HashSet<const void*> VisitedObjects;
    105 
    106104String nodeName(Node* node)
    107105{
     
    443441namespace {
    444442
    445 class MemoryInstrumentationImpl : public MemoryInstrumentation {
    446 public:
    447     explicit MemoryInstrumentationImpl(VisitedObjects& visitedObjects)
    448         : m_visitedObjects(visitedObjects)
    449     {
    450         for (int i = 0; i < LastTypeEntry; ++i)
    451             m_totalSizes[i] = 0;
    452     }
    453 
    454     PassRefPtr<InspectorMemoryBlock> dumpStatistics(InspectorDataCounter* inspectorData)
    455     {
    456         size_t inspectorSize
    457             = calculateContainerSize(m_visitedObjects)
    458             + calculateContainerSize(m_deferredInstrumentedPointers);
    459         inspectorData->addComponent(MemoryBlockName::inspectorDOMData, inspectorSize);
    460 
    461         size_t totalSize = 0;
    462         for (int i = Other; i < LastTypeEntry; ++i)
    463             totalSize += m_totalSizes[i];
    464 
    465         RefPtr<TypeBuilder::Array<InspectorMemoryBlock> > domChildren = TypeBuilder::Array<InspectorMemoryBlock>::create();
    466         addMemoryBlockFor(domChildren.get(), m_totalSizes[Other], MemoryBlockName::domTreeOther);
    467         addMemoryBlockFor(domChildren.get(), m_totalSizes[DOM], MemoryBlockName::domTreeDOM);
    468         addMemoryBlockFor(domChildren.get(), m_totalSizes[CSS], MemoryBlockName::domTreeCSS);
    469         addMemoryBlockFor(domChildren.get(), m_totalSizes[Binding], MemoryBlockName::domTreeBinding);
    470         addMemoryBlockFor(domChildren.get(), m_totalSizes[Loader], MemoryBlockName::domTreeLoader);
    471 
    472         RefPtr<InspectorMemoryBlock> dom = InspectorMemoryBlock::create().setName(MemoryBlockName::dom);
    473         dom->setSize(totalSize);
    474         dom->setChildren(domChildren.release());
    475         return dom.release();
    476     }
    477 
    478     void processDeferredInstrumentedPointers()
    479     {
    480         while (!m_deferredInstrumentedPointers.isEmpty()) {
    481             OwnPtr<InstrumentedPointerBase> pointer = m_deferredInstrumentedPointers.last().release();
    482             m_deferredInstrumentedPointers.removeLast();
    483             pointer->process(this);
    484         }
    485     }
    486 
    487 private:
    488     virtual void countObjectSize(ObjectType objectType, size_t size) OVERRIDE
    489     {
    490         ASSERT(objectType >= 0 && objectType < LastTypeEntry);
    491         m_totalSizes[objectType] += size;
    492     }
    493 
    494     virtual void deferInstrumentedPointer(PassOwnPtr<InstrumentedPointerBase> pointer) OVERRIDE
    495     {
    496         m_deferredInstrumentedPointers.append(pointer);
    497     }
    498 
    499     virtual bool visited(const void* object) OVERRIDE
    500     {
    501         return !m_visitedObjects.add(object).isNewEntry;
    502     }
    503 
    504     size_t m_totalSizes[LastTypeEntry];
    505     VisitedObjects& m_visitedObjects;
    506     Vector<OwnPtr<InstrumentedPointerBase> > m_deferredInstrumentedPointers;
    507 };
    508443
    509444class DOMTreesIterator : public NodeWrapperVisitor {
     
    538473    PassRefPtr<InspectorMemoryBlock> dumpStatistics(InspectorDataCounter* inspectorData)
    539474    {
    540         return m_domMemoryUsage.dumpStatistics(inspectorData);
     475        inspectorData->addComponent(MemoryBlockName::inspectorDOMData, m_domMemoryUsage.selfSize());
     476
     477        size_t totalSize = 0;
     478        for (int i = MemoryInstrumentation::Other; i < MemoryInstrumentation::LastTypeEntry; ++i)
     479            totalSize += m_domMemoryUsage.totalSize(static_cast<MemoryInstrumentation::ObjectType>(i));
     480
     481        RefPtr<TypeBuilder::Array<InspectorMemoryBlock> > domChildren = TypeBuilder::Array<InspectorMemoryBlock>::create();
     482        addMemoryBlockFor(domChildren.get(), m_domMemoryUsage.totalSize(MemoryInstrumentation::Other), MemoryBlockName::domTreeOther);
     483        addMemoryBlockFor(domChildren.get(), m_domMemoryUsage.totalSize(MemoryInstrumentation::DOM), MemoryBlockName::domTreeDOM);
     484        addMemoryBlockFor(domChildren.get(), m_domMemoryUsage.totalSize(MemoryInstrumentation::CSS), MemoryBlockName::domTreeCSS);
     485        addMemoryBlockFor(domChildren.get(), m_domMemoryUsage.totalSize(MemoryInstrumentation::Binding), MemoryBlockName::domTreeBinding);
     486        addMemoryBlockFor(domChildren.get(), m_domMemoryUsage.totalSize(MemoryInstrumentation::Loader), MemoryBlockName::domTreeLoader);
     487
     488        RefPtr<InspectorMemoryBlock> dom = InspectorMemoryBlock::create().setName(MemoryBlockName::dom);
     489        dom->setSize(totalSize);
     490        dom->setChildren(domChildren.release());
     491        return dom.release();
    541492    }
    542493
Note: See TracChangeset for help on using the changeset viewer.