Changeset 110358 in webkit


Ignore:
Timestamp:
Mar 9, 2012 6:22:48 PM (12 years ago)
Author:
senorblanco@chromium.org
Message:

Improve ContainerNode collectNode() performance by reserving vector
capacity up front.
https://bugs.webkit.org/show_bug.cgi?id=80706

Reviewed by Ryosuke Niwa.

Covered by existing tests. Performance will be evaluated based on
Chromium's page_cycler_bloat-http, page_cycler_intl1, and
dromaeo_domcore suites.

  • dom/ContainerNode.cpp:

(WebCore::collectNodes):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r110356 r110358  
     12012-03-09  Stephen White  <senorblanco@chromium.org>
     2
     3        Improve ContainerNode collectNode() performance by reserving vector
     4        capacity up front.
     5        https://bugs.webkit.org/show_bug.cgi?id=80706
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        Covered by existing tests.  Performance will be evaluated based on
     10        Chromium's page_cycler_bloat-http, page_cycler_intl1, and
     11        dromaeo_domcore suites.
     12
     13        * dom/ContainerNode.cpp:
     14        (WebCore::collectNodes):
     15
    1162012-03-09  Dan Bernstein  <mitz@apple.com>
    217
  • trunk/Source/WebCore/dom/ContainerNode.cpp

    r110320 r110358  
    2727#include "ContainerNodeAlgorithms.h"
    2828#include "DeleteButtonController.h"
     29#include "DocumentFragment.h"
    2930#include "EventNames.h"
    3031#include "ExceptionCode.h"
     
    6263static bool s_shouldReEnableMemoryCacheCallsAfterAttach;
    6364
    64 static inline void collectNodes(Node* node, NodeVector& nodes)
    65 {
     65static inline void collectNodes(ContainerNode* node, NodeVector& nodes)
     66{
     67    nodes.reserveCapacity(nodes.size() + node->childNodeCount());
    6668    for (Node* child = node->firstChild(); child; child = child->nextSibling())
    6769        nodes.append(child);
     
    7476        return;
    7577    }
    76     collectNodes(node, nodes);
     78    collectNodes(static_cast<DocumentFragment*>(node), nodes);
    7779}
    7880
Note: See TracChangeset for help on using the changeset viewer.