Changeset 38849 in webkit for trunk/JavaScriptCore/runtime


Ignore:
Timestamp:
Nov 29, 2008, 11:09:50 PM (16 years ago)
Author:
Antti Koivisto
Message:

JavaScriptCore:

2008-11-29 Antti Koivisto <Antti Koivisto>

Reviewed by Dan Bernstein.


https://bugs.webkit.org/show_bug.cgi?id=22557
Add statistics for JavaScript GC heap.

  • JavaScriptCore.exp:
  • runtime/Collector.cpp: (JSC::Heap::objectCount): (JSC::addToStatistics): (JSC::Heap::statistics):
  • runtime/Collector.h:

WebKit/mac:

2008-11-29 Antti Koivisto <Antti Koivisto>

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=22557
Add statistics for JavaScript GC heap.

  • Misc/WebCoreStatistics.mm: (+[WebCoreStatistics javaScriptObjectsCount]): (+[WebCoreStatistics memoryStatistics]):
Location:
trunk/JavaScriptCore/runtime
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/Collector.cpp

    r38750 r38849  
    10051005}
    10061006
    1007 size_t Heap::size()
     1007size_t Heap::objectCount()
    10081008{
    10091009    return primaryHeap.numLiveObjects + numberHeap.numLiveObjects;
     1010}
     1011
     1012template <HeapType heapType>
     1013static void addToStatistics(Heap::Statistics& statistics, const CollectorHeap& heap)
     1014{
     1015    typedef HeapConstants<heapType> HC;
     1016    for (size_t i = 0; i < heap.usedBlocks; ++i) {
     1017        if (heap.blocks[i]) {
     1018            statistics.size += BLOCK_SIZE;
     1019            statistics.free += (HC::cellsPerBlock - heap.blocks[i]->usedCells) * HC::cellSize;
     1020        }
     1021    }
     1022}
     1023
     1024Heap::Statistics Heap::statistics() const
     1025{
     1026    Statistics statistics = { 0, 0 };
     1027    JSC::addToStatistics<PrimaryHeap>(statistics, primaryHeap);
     1028    JSC::addToStatistics<NumberHeap>(statistics, numberHeap);
     1029    return statistics;
    10101030}
    10111031
  • trunk/JavaScriptCore/runtime/Collector.h

    r38622 r38849  
    8989        void reportExtraMemoryCost(size_t cost);
    9090
    91         size_t size();
     91        size_t objectCount();
     92        struct Statistics {
     93            size_t size;
     94            size_t free;
     95        };
     96        Statistics statistics() const;
    9297
    9398        void setGCProtectNeedsLocking();
Note: See TracChangeset for help on using the changeset viewer.