<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>75571</bug_id>
          
          <creation_ts>2012-01-04 13:44:01 -0800</creation_ts>
          <short_desc>AtomicString::addSlowCase is too slow</short_desc>
          <delta_ts>2012-10-11 18:51:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>99118</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>sullivan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529719</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-04 13:44:01 -0800</bug_when>
    <thetext>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&apos;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&amp;, JSC::JSValue, JSC::PutPropertySlot&amp;)
	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&lt;WTF::StringImpl*, std::pair&lt;WTF::StringImpl*, JSC::Weak&lt;JSC::JSString&gt; &gt;, WTF::PairFirstExtractor&lt;std::pair&lt;WTF::StringImpl*, JSC::Weak&lt;JSC::JSString&gt; &gt; &gt;, WTF::StringHash, WTF::PairHashTraits&lt;WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;JSC::Weak&lt;JSC::JSString&gt; &gt; &gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt; WTF::HashTable&lt;WTF::StringImpl*, std::pair&lt;WTF::StringImpl*, JSC::Weak&lt;JSC::JSString&gt; &gt;, WTF::PairFirstExtractor&lt;std::pair&lt;WTF::StringImpl*, JSC::Weak&lt;JSC::JSString&gt; &gt; &gt;, WTF::StringHash, WTF::PairHashTraits&lt;WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;JSC::Weak&lt;JSC::JSString&gt; &gt; &gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::find&lt;WTF::IdentityHashTranslator&lt;WTF::StringHash&gt;, WTF::StringImpl*&gt;(WTF::StringImpl* const&amp;)
	3.5%	3.5%	WebCore	WebCore::JSHTMLElement::getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::Identifier const&amp;, JSC::PropertySlot&amp;)
	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&lt;WTF::AtomicStringImpl*, WTF::AtomicStringImpl*, WTF::IdentityExtractor, WTF::PtrHash&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt;, WTF::HashTraits&lt;WTF::AtomicStringImpl*&gt; &gt;::contains&lt;WTF::IdentityHashTranslator&lt;WTF::PtrHash&lt;WTF::AtomicStringImpl*&gt; &gt;, WTF::AtomicStringImpl*&gt;(WTF::AtomicStringImpl* const&amp;) 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&amp;, JSC::PropertySlot&amp;) const
	2.5%	2.5%	WebCore	WebCore::jsString(JSC::ExecState*, WTF::String const&amp;)
	2.5%	2.5%	WebCore	WebCore::Element::setAttribute(WTF::AtomicString const&amp;, WTF::AtomicString const&amp;, int&amp;)
	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&amp;) 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&amp;, JSC::PropertySlot&amp;)
	2.0%	2.0%	JavaScriptCore	WTF::StringImpl::lower()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740509</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-11 18:51:04 -0700</bug_when>
    <thetext>I suspect this would be fixed by bug 99118.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>