[Webkit-unassigned] [Bug 73853] Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Dec 20 11:24:15 PST 2011
https://bugs.webkit.org/show_bug.cgi?id=73853
--- Comment #20 from Ryosuke Niwa <rniwa at webkit.org> 2011-12-20 11:24:14 PST ---
Unfortunately, there appears to be 3% regression in PerformanceTests/Parser/html-parser.html
Without patch:
avg 21238.6
median 21242.5
stdev 42.886361468420226
min 21168
max 21322
With patch:
avg 21714.15
median 21710.5
stdev 61.88317622746912
min 21614
max 21847
However, profile result doesn't tell us why this regression had happened. The regression doesn't appear to be a test flake given I've tried a couple of times and got a similar result.
Here's profile result:
5.5% 5.5% WebCore WebCore::HTMLTokenizer::nextToken(WebCore::SegmentedString&, WebCore::HTMLToken&)
3.0% 3.0% WebCore WebCore::CSSStyleSelector::matchRulesForList(WTF::Vector<WebCore::RuleData, 0ul> const*, int&, int&, bool)
1.9% 1.9% JavaScriptCore WTF::fastFree(void*)
1.8% 1.8% JavaScriptCore WTF::fastMalloc(unsigned long)
1.4% 1.4% WebCore WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*)
1.3% 1.3% WebCore void WebCore::Private::addChildNodesToDeletionQueue<WebCore::Node, WebCore::ContainerNode>(WebCore::Node*&, WebCore::Node*&, WebCore::ContainerNode*)
1.3% 1.3% WebCore WebCore::MarkupTokenizerBase<WebCore::HTMLToken, WebCore::HTMLTokenizerState>::InputStreamPreprocessor::advance(WebCore::SegmentedString&, int&)
1.2% 1.2% WebCore void WebCore::removeAllChildrenInContainer<WebCore::Node, WebCore::ContainerNode>(WebCore::ContainerNode*)
1.1% 1.1% JavaScriptCore WTF::AtomicString::add(unsigned short const*, unsigned int)
1.1% 1.1% JavaScriptCore WTF::AtomicString::addSlowCase(WTF::StringImpl*)
1.1% 1.1% WebCore WebCore::SelectorChecker::checkOneSelector(WebCore::CSSSelector*, WebCore::Element*, WebCore::PseudoId&, bool, WebCore::SelectorChecker::VisitedMatchType, WebCore::RenderStyle*, WebCore::RenderStyle*) const
0.9% 0.9% WebCore WebCore::visitedLinkHash(WebCore::KURL const&, WTF::AtomicString const&)
0.9% 0.9% JavaScriptCore WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe()
0.9% 0.9% WebCore WebCore::HTMLTreeBuilder::processStartTagForInBody(WebCore::AtomicHTMLToken&)
0.9% 0.9% WebCore WebCore::CSSStyleSelector::adjustRenderStyle(WebCore::RenderStyle*, WebCore::RenderStyle*, WebCore::Element*)
0.7% 0.7% WebCore WTF::HashMap<WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*, WTF::PtrHash<WebCore::RenderBoxModelObject const*>, WTF::HashTraits<WebCore::RenderBoxModelObject const*>, WTF::HashTraits<WebCore::RenderBoxModelObject*> >::get(WebCore::RenderBoxModelObject const* const&) const
0.7% 0.7% WebCore WebCore::HTMLConstructionSite::insertTextNode(WTF::String const&, WebCore::WhitespaceMode)
0.7% 0.7% libSystem.B.dylib __memcpy
0.7% 0.7% WebCore WebCore::CSSStyleSelector::styleForElement(WebCore::Element*, WebCore::RenderStyle*, bool, bool, WebCore::RenderRegion*)
0.7% 0.7% JavaScriptCore WTF::TCMalloc_Central_FreeList::RemoveRange(void**, void**, int*)
0.7% 0.7% WebCore WebCore::SelectorChecker::fastCheckSelector(WebCore::CSSSelector const*, WebCore::Element const*) const
0.7% 0.7% WebCore WebCore::SegmentedString::operator=(WebCore::SegmentedString const&)
0.6% 0.6% JavaScriptCore WTF::TCMalloc_Central_FreeList::ReleaseListToSpans(void*)
0.6% 0.6% WebCore WebCore::RenderObject::RenderObject(WebCore::Node*)
0.6% 0.6% WebCore void WebCore::CSSStyleSelector::applyDeclaration<true>(WebCore::CSSMutableStyleDeclaration*, bool, bool)
0.6% 0.6% WebCore WebCore::CSSStyleSelector::matchRules(WebCore::RuleSet*, int&, int&, bool)
0.6% 0.6% WebCore WTF::HashMap<WTF::AtomicStringImpl*, WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> >, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> > > >::get(WTF::AtomicStringImpl* const&) const
0.6% 0.6% WebCore WebCore::ContainerNode::detach()
0.6% 0.6% libSystem.B.dylib pthread_getspecific
0.6% 0.6% WebCore WebCore::QualifiedName::init(WTF::AtomicString const&, WTF::AtomicString const&, WTF::AtomicString const&)
0.6% 0.6% WebCore WebCore::AtomicHTMLToken::AtomicHTMLToken(WebCore::HTMLToken&)
0.5% 0.5% WebCore WebCore::RenderObjectChildList::appendChildNode(WebCore::RenderObject*, WebCore::RenderObject*, bool)
0.5% 0.5% WebCore WebCore::Text::~Text()
0.5% 0.5% WebCore WebCore::HTMLSourceTracker::start(WebCore::HTMLInputStream const&, WebCore::HTMLToken&)
0.5% 0.5% WebCore WebCore::Element::setAttributeMap(WTF::PassRefPtr<WebCore::NamedNodeMap>, WebCore::FragmentScriptingPermission)
0.5% 0.5% WebCore WebCore::mergeDoubleSlashes(WTF::Vector<unsigned short, 512ul>&, unsigned long)
0.5% 0.5% WebCore WebCore::RenderObject::setStyle(WTF::PassRefPtr<WebCore::RenderStyle>)
0.5% 0.5% WebCore WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken(WebCore::AtomicHTMLToken&)
0.5% 0.5% WebCore WebCore::RenderText::RenderText(WebCore::Node*, WTF::PassRefPtr<WTF::StringImpl>)
0.5% 0.5% WebCore WebCore::Document::removeAllEventListeners()
0.5% 0.5% WebCore WebCore::HTMLTreeBuilder::constructTreeFromToken(WebCore::HTMLToken&)
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list