Changeset 128057 in webkit


Ignore:
Timestamp:
Sep 10, 2012 7:01:26 AM (12 years ago)
Author:
caseq@chromium.org
Message:

Web Inspector: only display heap size statistics for timeline records when it makes sense
https://bugs.webkit.org/show_bug.cgi?id=96119

Reviewed by Yury Semikhatsky.

Source/WebCore:

  • drop totalHeapSize from timeline records;
  • add usedHeapSizeDelta (not set if 0), for heap delta between start and end of the event;
  • only display memory details for events of scriping category or when delta is not 0;
  • English.lproj/localizedStrings.js:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::getUsedHeapSize):
(WebCore):
(WebCore::InspectorTimelineAgent::setHeapSizeStatistics):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/InspectorTimelineAgent.h:

(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
(TimelineRecordEntry):

  • inspector/front-end/TimelinePresentationModel.js:

(WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSizeDelta):
(WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):

LayoutTests:

  • rebase timeline tests to drop totalHeapSize
  • add support for "skip" formatter, to handle cases where value is optionally present in the dumped object;
  • drop custom expectations that are identical to base;
  • http/tests/inspector/inspector-test.js:

(initialize_InspectorTest.InspectorTest.addObject):

  • inspector/timeline/timeline-animation-frame-expected.txt:
  • inspector/timeline/timeline-decode-resize-expected.txt:
  • inspector/timeline/timeline-dom-content-loaded-event-expected.txt:
  • inspector/timeline/timeline-event-dispatch-expected.txt:
  • inspector/timeline/timeline-injected-script-eval-expected.txt:
  • inspector/timeline/timeline-layout-expected.txt:
  • inspector/timeline/timeline-load-event-expected.txt:
  • inspector/timeline/timeline-mark-timeline-expected.txt:
  • inspector/timeline/timeline-network-resource-expected.txt:
  • inspector/timeline/timeline-paint-expected.txt:
  • inspector/timeline/timeline-parse-html-expected.txt:
  • inspector/timeline/timeline-recalculate-styles-expected.txt:
  • inspector/timeline/timeline-script-tag-1-expected.txt:
  • inspector/timeline/timeline-script-tag-2-expected.txt:
  • inspector/timeline/timeline-test.js:
  • inspector/timeline/timeline-time-stamp-expected.txt:
  • inspector/timeline/timeline-timer-expected.txt:
  • platform/chromium/inspector/timeline/timeline-animation-frame-expected.txt: Removed.
  • platform/chromium/inspector/timeline/timeline-event-dispatch-expected.txt: Removed.
  • platform/chromium/inspector/timeline/timeline-layout-expected.txt: Removed.
  • platform/chromium/inspector/timeline/timeline-network-resource-expected.txt: Removed.
  • platform/chromium/inspector/timeline/timeline-parse-html-expected.txt: Removed.
  • platform/chromium/inspector/timeline/timeline-timer-expected.txt: Removed.
Location:
trunk
Files:
6 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r128055 r128057  
     12012-09-07  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Web Inspector: only display heap size statistics for timeline records when it makes sense
     4        https://bugs.webkit.org/show_bug.cgi?id=96119
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        - rebase timeline tests to drop totalHeapSize
     9        - add support for "skip" formatter, to handle cases where value is optionally present in the dumped object;
     10        - drop custom expectations that are identical to base;
     11
     12        * http/tests/inspector/inspector-test.js:
     13        (initialize_InspectorTest.InspectorTest.addObject):
     14        * inspector/timeline/timeline-animation-frame-expected.txt:
     15        * inspector/timeline/timeline-decode-resize-expected.txt:
     16        * inspector/timeline/timeline-dom-content-loaded-event-expected.txt:
     17        * inspector/timeline/timeline-event-dispatch-expected.txt:
     18        * inspector/timeline/timeline-injected-script-eval-expected.txt:
     19        * inspector/timeline/timeline-layout-expected.txt:
     20        * inspector/timeline/timeline-load-event-expected.txt:
     21        * inspector/timeline/timeline-mark-timeline-expected.txt:
     22        * inspector/timeline/timeline-network-resource-expected.txt:
     23        * inspector/timeline/timeline-paint-expected.txt:
     24        * inspector/timeline/timeline-parse-html-expected.txt:
     25        * inspector/timeline/timeline-recalculate-styles-expected.txt:
     26        * inspector/timeline/timeline-script-tag-1-expected.txt:
     27        * inspector/timeline/timeline-script-tag-2-expected.txt:
     28        * inspector/timeline/timeline-test.js:
     29        * inspector/timeline/timeline-time-stamp-expected.txt:
     30        * inspector/timeline/timeline-timer-expected.txt:
     31        * platform/chromium/inspector/timeline/timeline-animation-frame-expected.txt: Removed.
     32        * platform/chromium/inspector/timeline/timeline-event-dispatch-expected.txt: Removed.
     33        * platform/chromium/inspector/timeline/timeline-layout-expected.txt: Removed.
     34        * platform/chromium/inspector/timeline/timeline-network-resource-expected.txt: Removed.
     35        * platform/chromium/inspector/timeline/timeline-parse-html-expected.txt: Removed.
     36        * platform/chromium/inspector/timeline/timeline-timer-expected.txt: Removed.
     37
    1382012-09-10  János Badics  <jbadics@inf.u-szeged.hu>
    239
  • trunk/LayoutTests/http/tests/inspector/inspector-test.js

    r127147 r128057  
    140140        if (customFormatters && customFormatters[prop]) {
    141141            var formatterName = customFormatters[prop];
    142             var formatter = InspectorTest.formatters[formatterName];
    143             InspectorTest.addResult(prefixWithName + formatter(propValue));
     142            if (formatterName !== "skip") {
     143                var formatter = InspectorTest.formatters[formatterName];
     144                InspectorTest.addResult(prefixWithName + formatter(propValue));
     145            }
    144146        } else
    145147            InspectorTest.dump(propValue, customFormatters, "    " + prefix, prefixWithName);
  • trunk/LayoutTests/inspector/timeline/timeline-animation-frame-expected.txt

    r127164 r128057  
    1010    stackTrace : <object>
    1111    startTime : <number>
    12     totalHeapSize : <number>
    1312    type : "RequestAnimationFrame"
    1413    usedHeapSize : <number>
     
    2423    frameId : <string>
    2524    startTime : <number>
    26     totalHeapSize : <number>
    2725    type : "FireAnimationFrame"
    2826    usedHeapSize : <number>
     
    3735    stackTrace : <object>
    3836    startTime : <number>
    39     totalHeapSize : <number>
    4037    type : "CancelAnimationFrame"
    4138    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-decode-resize-expected.txt

    r127147 r128057  
    1212    stackTrace : <object>
    1313    startTime : <number>
    14     totalHeapSize : <number>
    1514    type : "DecodeImage"
    1615    usedHeapSize : <number>
     
    2625    stackTrace : <object>
    2726    startTime : <number>
    28     totalHeapSize : <number>
    2927    type : "ResizeImage"
    3028    usedHeapSize : <number>
     
    4038    stackTrace : <object>
    4139    startTime : <number>
    42     totalHeapSize : <number>
    4340    type : "DecodeImage"
    4441    usedHeapSize : <number>
     
    5451    stackTrace : <object>
    5552    startTime : <number>
    56     totalHeapSize : <number>
    5753    type : "ResizeImage"
    5854    usedHeapSize : <number>
     
    6864    stackTrace : <object>
    6965    startTime : <number>
    70     totalHeapSize : <number>
    7166    type : "DecodeImage"
    7267    usedHeapSize : <number>
     
    8277    stackTrace : <object>
    8378    startTime : <number>
    84     totalHeapSize : <number>
    8579    type : "ResizeImage"
    8680    usedHeapSize : <number>
     
    9690    stackTrace : <object>
    9791    startTime : <number>
    98     totalHeapSize : <number>
    9992    type : "DecodeImage"
    10093    usedHeapSize : <number>
     
    110103    stackTrace : <object>
    111104    startTime : <number>
    112     totalHeapSize : <number>
    113105    type : "ResizeImage"
    114106    usedHeapSize : <number>
     
    124116    stackTrace : <object>
    125117    startTime : <number>
    126     totalHeapSize : <number>
    127118    type : "DecodeImage"
    128119    usedHeapSize : <number>
     
    138129    stackTrace : <object>
    139130    startTime : <number>
    140     totalHeapSize : <number>
    141131    type : "ResizeImage"
    142132    usedHeapSize : <number>
     
    152142    stackTrace : <object>
    153143    startTime : <number>
    154     totalHeapSize : <number>
    155144    type : "DecodeImage"
    156145    usedHeapSize : <number>
     
    166155    stackTrace : <object>
    167156    startTime : <number>
    168     totalHeapSize : <number>
    169157    type : "ResizeImage"
    170158    usedHeapSize : <number>
     
    180168    stackTrace : <object>
    181169    startTime : <number>
    182     totalHeapSize : <number>
    183170    type : "DecodeImage"
    184171    usedHeapSize : <number>
     
    194181    stackTrace : <object>
    195182    startTime : <number>
    196     totalHeapSize : <number>
    197183    type : "ResizeImage"
    198184    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-dom-content-loaded-event-expected.txt

    r127147 r128057  
    99    frameId : <string>
    1010    startTime : <number>
    11     totalHeapSize : <number>
    1211    type : "MarkDOMContent"
    1312    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-event-dispatch-expected.txt

    r127147 r128057  
    1212    frameId : <string>
    1313    startTime : <number>
    14     totalHeapSize : <number>
    1514    type : "EventDispatch"
    1615    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-injected-script-eval-expected.txt

    r127147 r128057  
    1212    frameId : <string>
    1313    startTime : <number>
    14     totalHeapSize : <number>
    1514    type : "FunctionCall"
    1615    usedHeapSize : <number>
     
    2726    frameId : <string>
    2827    startTime : <number>
    29     totalHeapSize : <number>
    3028    type : "FunctionCall"
    3129    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-layout-expected.txt

    r127147 r128057  
    1212    stackTrace : <object>
    1313    startTime : <number>
    14     totalHeapSize : <number>
    1514    type : "Layout"
    1615    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-load-event-expected.txt

    r127147 r128057  
    99    frameId : <string>
    1010    startTime : <number>
    11     totalHeapSize : <number>
    1211    type : "MarkLoad"
    1312    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-mark-timeline-expected.txt

    r127147 r128057  
    1010    stackTrace : <object>
    1111    startTime : <number>
    12     totalHeapSize : <number>
    1312    type : "TimeStamp"
    1413    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-network-resource-expected.txt

    r127147 r128057  
    1515    stackTrace : <object>
    1616    startTime : <number>
    17     totalHeapSize : <number>
    1817    type : "ResourceSendRequest"
    1918    usedHeapSize : <number>
     
    3231    frameId : <string>
    3332    startTime : <number>
    34     totalHeapSize : <number>
    3533    type : "ResourceReceiveResponse"
    3634    usedHeapSize : <number>
     
    4644    frameId : <string>
    4745    startTime : <number>
    48     totalHeapSize : <number>
    4946    type : "ResourceFinish"
    5047    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-paint-expected.txt

    r127271 r128057  
    1515    stackTrace : <object>
    1616    startTime : <number>
    17     totalHeapSize : <number>
    1817    type : "Paint"
    1918    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-parse-html-expected.txt

    r127147 r128057  
    1515    stackTrace : <object>
    1616    startTime : <number>
    17     totalHeapSize : <number>
    1817    type : "ParseHTML"
    1918    usedHeapSize : <number>
     
    3231    stackTrace : <object>
    3332    startTime : <number>
    34     totalHeapSize : <number>
    3533    type : "ParseHTML"
    3634    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-recalculate-styles-expected.txt

    r127147 r128057  
    1111    frameId : <string>
    1212    startTime : <number>
    13     totalHeapSize : <number>
    1413    type : "RecalculateStyles"
    1514    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-script-tag-1-expected.txt

    r127147 r128057  
    2020    frameId : <string>
    2121    startTime : <number>
    22     totalHeapSize : <number>
    2322    type : "EvaluateScript"
    2423    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-script-tag-2-expected.txt

    r127147 r128057  
    1313    frameId : <string>
    1414    startTime : <number>
    15     totalHeapSize : <number>
    1615    type : "EvaluateScript"
    1716    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-test.js

    r127039 r128057  
    1313    scriptName: "formatAsTypeName",
    1414    usedHeapSize: "formatAsTypeName",
    15     totalHeapSize: "formatAsTypeName",
     15    usedHeapSizeDelta: "skip",
    1616    mimeType: "formatAsTypeName",
    1717    id: "formatAsTypeName",
  • trunk/LayoutTests/inspector/timeline/timeline-time-stamp-expected.txt

    r127147 r128057  
    1010    stackTrace : <object>
    1111    startTime : <number>
    12     totalHeapSize : <number>
    1312    type : "TimeStamp"
    1413    usedHeapSize : <number>
     
    2423    stackTrace : <object>
    2524    startTime : <number>
    26     totalHeapSize : <number>
    2725    type : "TimeStamp"
    2826    usedHeapSize : <number>
  • trunk/LayoutTests/inspector/timeline/timeline-timer-expected.txt

    r127147 r128057  
    1212    stackTrace : <object>
    1313    startTime : <number>
    14     totalHeapSize : <number>
    1514    type : "TimerInstall"
    1615    usedHeapSize : <number>
     
    2726    stackTrace : <object>
    2827    startTime : <number>
    29     totalHeapSize : <number>
    3028    type : "TimerInstall"
    3129    usedHeapSize : <number>
     
    4139    frameId : <string>
    4240    startTime : <number>
    43     totalHeapSize : <number>
    4441    type : "TimerFire"
    4542    usedHeapSize : <number>
     
    5552    frameId : <string>
    5653    startTime : <number>
    57     totalHeapSize : <number>
    5854    type : "TimerFire"
    5955    usedHeapSize : <number>
     
    6965    frameId : <string>
    7066    startTime : <number>
    71     totalHeapSize : <number>
    7267    type : "TimerFire"
    7368    usedHeapSize : <number>
     
    8277    stackTrace : <object>
    8378    startTime : <number>
    84     totalHeapSize : <number>
    8579    type : "TimerRemove"
    8680    usedHeapSize : <number>
     
    9791    frameId : <string>
    9892    startTime : <number>
    99     totalHeapSize : <number>
    10093    type : "FunctionCall"
    10194    usedHeapSize : <number>
     
    112105    frameId : <string>
    113106    startTime : <number>
    114     totalHeapSize : <number>
    115107    type : "FunctionCall"
    116108    usedHeapSize : <number>
     
    127119    frameId : <string>
    128120    startTime : <number>
    129     totalHeapSize : <number>
    130121    type : "FunctionCall"
    131122    usedHeapSize : <number>
     
    142133    frameId : <string>
    143134    startTime : <number>
    144     totalHeapSize : <number>
    145135    type : "FunctionCall"
    146136    usedHeapSize : <number>
     
    157147    frameId : <string>
    158148    startTime : <number>
    159     totalHeapSize : <number>
    160149    type : "EvaluateScript"
    161150    usedHeapSize : <number>
  • trunk/Source/WebCore/ChangeLog

    r128054 r128057  
     12012-09-07  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Web Inspector: only display heap size statistics for timeline records when it makes sense
     4        https://bugs.webkit.org/show_bug.cgi?id=96119
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        - drop totalHeapSize from timeline records;
     9        - add usedHeapSizeDelta (not set if 0), for heap delta between start and end of the event;
     10        - only display memory details for events of scriping category or when delta is not 0;
     11
     12        * English.lproj/localizedStrings.js:
     13        * inspector/InspectorTimelineAgent.cpp:
     14        (WebCore::getUsedHeapSize):
     15        (WebCore):
     16        (WebCore::InspectorTimelineAgent::setHeapSizeStatistics):
     17        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
     18        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
     19        * inspector/InspectorTimelineAgent.h:
     20        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
     21        (TimelineRecordEntry):
     22        * inspector/front-end/TimelinePresentationModel.js:
     23        (WebInspector.TimelinePresentationModel.Record.prototype.get usedHeapSizeDelta):
     24        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
     25
    1262012-09-10  Simon Hausmann  <simon.hausmann@nokia.com>
    227
  • trunk/Source/WebCore/English.lproj/localizedStrings.js

    r127861 r128057  
    4343localizedStrings["%s latency"] = "%s latency";
    4444localizedStrings["%s latency, %s download (%s total)"] = "%s latency, %s download (%s total)";
    45 localizedStrings["%s of %s"] = "%s of %s";
    4645localizedStrings["%s%.2f%%"] = "%s%.2f%%";
    4746localizedStrings["%s%d"] = "%s%d";
     
    739738localizedStrings["Layout forced"] = "Layout forced";
    740739localizedStrings["Paused on assertion."] = "Paused on assertion.";
    741 
     740localizedStrings["%s (%s%s)"] = "%s (%s%s)";
  • trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp

    r126754 r128057  
    503503}
    504504
    505 void InspectorTimelineAgent::setHeapSizeStatistics(InspectorObject* record)
     505static size_t getUsedHeapSize()
    506506{
    507507    HeapInfo info;
    508508    ScriptGCEvent::getHeapSize(info);
    509     record->setNumber("usedHeapSize", info.usedJSHeapSize);
    510     record->setNumber("totalHeapSize", info.totalJSHeapSize);
     509    return info.usedJSHeapSize;
     510}
     511
     512void InspectorTimelineAgent::setHeapSizeStatistics(InspectorObject* record)
     513{
     514    record->setNumber("usedHeapSize", getUsedHeapSize());
    511515
    512516    if (m_state->getBoolean(TimelineAgentState::includeMemoryDetails)) {
     
    536540        entry.record->setArray("children", entry.children);
    537541        entry.record->setNumber("endTime", timestamp());
     542        size_t usedHeapSizeDelta = getUsedHeapSize() - entry.usedHeapSizeAtStart;
     543        if (usedHeapSizeDelta)
     544            entry.record->setNumber("usedHeapSizeDelta", usedHeapSizeDelta);
    538545        addRecordToTimeline(entry.record, type, entry.frameId);
    539546    }
     
    573580    if (frame && m_pageAgent)
    574581        frameId = m_pageAgent->frameId(frame);
    575     m_recordStack.append(TimelineRecordEntry(record.release(), data, InspectorArray::create(), type, frameId));
     582    m_recordStack.append(TimelineRecordEntry(record.release(), data, InspectorArray::create(), type, frameId, getUsedHeapSize()));
    576583    if (hasLowLevelDetails && !m_platformInstrumentationClientInstalledAtStackDepth && !PlatformInstrumentation::hasClient()) {
    577584        m_platformInstrumentationClientInstalledAtStackDepth = m_recordStack.size();
  • trunk/Source/WebCore/inspector/InspectorTimelineAgent.h

    r126754 r128057  
    162162private:
    163163    struct TimelineRecordEntry {
    164         TimelineRecordEntry(PassRefPtr<InspectorObject> record, PassRefPtr<InspectorObject> data, PassRefPtr<InspectorArray> children, const String& type, const String& frameId)
    165             : record(record), data(data), children(children), type(type), frameId(frameId)
     164        TimelineRecordEntry(PassRefPtr<InspectorObject> record, PassRefPtr<InspectorObject> data, PassRefPtr<InspectorArray> children, const String& type, const String& frameId, size_t usedHeapSizeAtStart)
     165            : record(record), data(data), children(children), type(type), frameId(frameId), usedHeapSizeAtStart(usedHeapSizeAtStart)
    166166        {
    167167        }
     
    171171        String type;
    172172        String frameId;
     173        size_t usedHeapSizeAtStart;
    173174    };
    174175       
  • trunk/Source/WebCore/inspector/front-end/TimelinePresentationModel.js

    r127746 r128057  
    675675     * @return {number}
    676676     */
    677     get totalHeapSize()
    678     {
    679         return this._record.totalHeapSize;
     677    get usedHeapSizeDelta()
     678    {
     679        return this._record.usedHeapSizeDelta || 0;
    680680    },
    681681
     
    806806            contentHelper._appendElementRow(WebInspector.UIString("Function Call"), this._linkifyScriptLocation());
    807807
    808         if (this.usedHeapSize)
    809             contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"), WebInspector.UIString("%s of %s", Number.bytesToString(this.usedHeapSize), Number.bytesToString(this.totalHeapSize)));
     808        if (this.usedHeapSize) {
     809            if (this.usedHeapSizeDelta) {
     810                var sign = this.usedHeapSizeDelta > 0 ? "+" : "-";
     811                contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"),
     812                    WebInspector.UIString("%s (%s%s)", Number.bytesToString(this.usedHeapSize), sign, Number.bytesToString(this.usedHeapSizeDelta)));
     813            } else if (this.category === WebInspector.TimelinePresentationModel.categories().scripting)
     814                contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"), Number.bytesToString(this.usedHeapSize));
     815        }
    810816
    811817        if (this.callSiteStackTrace)
Note: See TracChangeset for help on using the changeset viewer.