Bug 75571
Summary: | AtomicString::addSlowCase is too slow | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ryosuke Niwa <rniwa> |
Component: | Web Template Framework | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | eric, oliver, sam, sullivan |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | 99118 | ||
Bug Blocks: |
Ryosuke Niwa
Profiled WebKit r103959 while it was running DOM Attributes tests on http://dromaeo.com/?dom
It seems like we need to do something about AtomicString::addSlowCase. Maybe we're creating atomic string too often?
6.6% 6.6% JavaScriptCore JSC::IdentifierTable::add(WTF::StringImpl*)
5.8% 5.8% JavaScriptCore WTF::AtomicString::addSlowCase(WTF::StringImpl*)
0.0% 4.2% Unknown Library 0x1128e2e80 [unknown]
0.0% 1.1% Unknown Library 0x112a4b9a8 [unknown]
0.0% 0.1% WebCore WebCore::JSHTMLElement::put(JSC::JSCell*, JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&)
0.0% 0.1% Unknown Library 0x2becb9401538 [unknown]
0.0% 0.1% WebCore WebCore::setJSHTMLElementId(JSC::ExecState*, JSC::JSObject*, JSC::JSValue)
0.0% 0.1% WebCore WebCore::jsElementPrototypeFunctionSetAttribute(JSC::ExecState*)
0.0% 0.0% Unknown Library 0x112ac1818 [unknown]
0.0% 0.0% Unknown Library 0x112a46020 [unknown]
0.0% 0.0% Unknown Library 0x11a7e0660 [unknown]
0.0% 0.0% Unknown Library 0x113b59b60 [unknown]
0.0% 0.0% Unknown Library 0x1195f74a8 [unknown]
5.1% 5.1% WebCore WTF::HashTableIterator<WTF::StringImpl*, std::pair<WTF::StringImpl*, JSC::Weak<JSC::JSString> >, WTF::PairFirstExtractor<std::pair<WTF::StringImpl*, JSC::Weak<JSC::JSString> > >, WTF::StringHash, WTF::PairHashTraits<WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<JSC::Weak<JSC::JSString> > >, WTF::HashTraits<WTF::StringImpl*> > WTF::HashTable<WTF::StringImpl*, std::pair<WTF::StringImpl*, JSC::Weak<JSC::JSString> >, WTF::PairFirstExtractor<std::pair<WTF::StringImpl*, JSC::Weak<JSC::JSString> > >, WTF::StringHash, WTF::PairHashTraits<WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<JSC::Weak<JSC::JSString> > >, WTF::HashTraits<WTF::StringImpl*> >::find<WTF::IdentityHashTranslator<WTF::StringHash>, WTF::StringImpl*>(WTF::StringImpl* const&)
3.5% 3.5% WebCore WebCore::JSHTMLElement::getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::Identifier const&, JSC::PropertySlot&)
3.5% 3.5% JavaScriptCore JSC::MarkedBlock::sweep(JSC::MarkedBlock::SweepMode)
3.1% 3.1% Unknown Library 0x2becb9401640 [23.2KB]
2.9% 2.9% JavaScriptCore JSC::JSValue::toPrimitiveString(JSC::ExecState*) const
2.7% 2.7% WebCore bool WTF::HashTable<WTF::AtomicStringImpl*, WTF::AtomicStringImpl*, WTF::IdentityExtractor, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*> >::contains<WTF::IdentityHashTranslator<WTF::PtrHash<WTF::AtomicStringImpl*> >, WTF::AtomicStringImpl*>(WTF::AtomicStringImpl* const&) const
2.7% 2.7% JavaScriptCore JSC::JSString::resolveRope(JSC::ExecState*) const
2.6% 2.6% JavaScriptCore JSC::JSValue::get(JSC::ExecState*, JSC::Identifier const&, JSC::PropertySlot&) const
2.5% 2.5% WebCore WebCore::jsString(JSC::ExecState*, WTF::String const&)
2.5% 2.5% WebCore WebCore::Element::setAttribute(WTF::AtomicString const&, WTF::AtomicString const&, int&)
2.4% 2.4% WebCore JSC::JSValue::toString(JSC::ExecState*) const
2.2% 2.2% WebCore WebCore::Element::idAttributeChanged(WebCore::Attribute*)
2.2% 2.2% WebCore WebCore::Element::getAttribute(WebCore::QualifiedName const&) const
2.1% 2.1% Unknown Library 0x2becb9407ee0 [8.6KB]
2.0% 2.0% WebCore WebCore::JSHTMLHeadingElement::getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::Identifier const&, JSC::PropertySlot&)
2.0% 2.0% JavaScriptCore WTF::StringImpl::lower()
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Eric Seidel (no email)
I suspect this would be fixed by bug 99118.