[Webkit-unassigned] [Bug 17203] New: High CPU usage loading HTML5 spec

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Feb 6 22:23:17 PST 2008


http://bugs.webkit.org/show_bug.cgi?id=17203

           Summary: High CPU usage loading HTML5 spec
           Product: WebKit
           Version: 525+ (Nightly build)
          Platform: Macintosh
               URL: http://www.whatwg.org/specs/web-apps/current-work/
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: webkit at mattlilek.com


This is likely a result of the combination of the use of some fancy new CSS
selectors and a large document, but loading the WHATWG's spec page results in
significant CPU usage while loading.  r30053 nightly pegs my CPU at 100% for
10-15 seconds while its loading, while an older nightly (r29807) only spikes
the CPU for 1-2 seconds (2 GHz Core 2 Duo, 2 GB RAM, 10.5.1).  Not sure what
can be done about it, but it's probably worth making it known regardless.

Part of the sample results from my r30060 debug build:
Total number in stack (recursive counted multiple, when >=5):
        55       WTF::fastFree(void*)
        48       WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>,
WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int>
>::~HashTableIterator()
        46       WebCore::AtomicString::impl() const
        45       WTF::fastMalloc(unsigned long)
        45       free
        40      
WebCore::CSSStyleSelector::checkSelector(WebCore::CSSSelector*,
WebCore::Element*, bool, bool)
        39      
WebCore::CSSStyleSelector::checkOneSelector(WebCore::CSSSelector*,
WebCore::Element*, bool, bool)
        39       WebCore::String::impl() const
        37       malloc
        36       WTF::HashMap<int, WebCore::GlyphPageTreeNode*,
WTF::IntHash<unsigned int>, WTF::HashTraits<int>,
WTF::HashTraits<WebCore::GlyphPageTreeNode*> >::HashMap(WTF::HashMap<int,
WebCore::GlyphPageTreeNode*, WTF::IntHash<unsigned int>, WTF::HashTraits<int>,
WTF::HashTraits<WebCore::GlyphPageTreeNode*> > const&)
        36       WTF::HashTable<int, std::pair<int, int>,
WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned int>,
WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >,
WTF::HashTraits<int> >::HashTable(WTF::HashTable<int, std::pair<int, int>,
WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned int>,
WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >,
WTF::HashTraits<int> > const&)
        36       malloc_zone_malloc
        34       WTF::HashTableConstIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >::~HashTableConstIterator()
        34       WTF::isForbidden()
        32       WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>,
WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int>
>::HashTableIterator(WTF::HashTableIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> > const&)
        32       szone_free
        31       WebCore::operator==(WebCore::AtomicString const&,
WebCore::AtomicString const&)
        31       szone_malloc
        30       WTF::HashTableConstIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >::HashTableConstIterator(WTF::HashTableConstIterator<int,
int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> > const&)
        30       WebCore::CSSStyleSelector::matchRules(WebCore::CSSRuleSet*,
int&, int&)
        28       WTF::RefPtr<WebCore::StringImpl>::get() const
        27      
WebCore::CSSStyleSelector::matchRulesForList(WebCore::CSSRuleDataList*, int&,
int&)
        26       WebCore::Font::~Font()
        26       WebCore::String::~String()
        25      
WebCore::CSSStyleSelector::checkSelector(WebCore::CSSSelector*)
        25      
WebCore::FontDescription::FontDescription(WebCore::FontDescription const&)
        24       WebCore::RenderStyle::~RenderStyle()
        24       __spin_lock
        23       WTF::RefPtr<WebCore::StringImpl>::~RefPtr()
        23       tiny_malloc_from_free_list
        22       WebCore::Font::Font(WebCore::Font const&)
        22      
WebCore::StyleInheritedData::StyleInheritedData(WebCore::StyleInheritedData
const&)
        21       WebCore::FontDescription::~FontDescription()
        20       WTF::HashMap<int, WebCore::GlyphPageTreeNode*,
WTF::IntHash<unsigned int>, WTF::HashTraits<int>,
WTF::HashTraits<WebCore::GlyphPageTreeNode*> >::~HashMap()
        20       WTF::HashTable<int, std::pair<int, int>,
WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned int>,
WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >,
WTF::HashTraits<int> >::~HashTable()
        20       WebCore::DataRef<WebCore::StyleInheritedData>::~DataRef()
        20       WebCore::FontFamily::FontFamily(WebCore::FontFamily const&)
        20       WebCore::String::String(char const*)
        20       std::pair<WTF::HashTableIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >, bool>::pair(WTF::HashTableIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> > const&, bool const&)
        20       std::pair<WTF::HashTableIteratorAdapter<WTF::HashTable<int,
int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >, WebCore::AtomicStringImpl*>, bool>::~pair()
        19       WTF::HashSet<WebCore::AtomicStringImpl*,
WTF::PtrHash<WebCore::AtomicStringImpl*>,
WTF::HashTraits<WebCore::AtomicStringImpl*> >::add(WebCore::AtomicStringImpl*
const&)
        19       WebCore::CSSSelector::hasTag() const
        19       WebCore::FontFamily::~FontFamily()
        19       WebCore::QualifiedName::operator!=(WebCore::QualifiedName
const&) const
        19       std::pair<WTF::HashTableIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >, bool> WTF::HashTable<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >::add<WebCore::AtomicStringImpl*,
WebCore::AtomicStringImpl*, WTF::HashSetTranslator<true,
WebCore::AtomicStringImpl*, WTF::HashTraits<WebCore::AtomicStringImpl*>,
WTF::HashTraits<int>, WTF::PtrHash<WebCore::AtomicStringImpl*> >
>(WebCore::AtomicStringImpl* const&, WebCore::AtomicStringImpl* const&)
        19       std::pair<WTF::HashTableIterator<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >, bool>::~pair()
        18       WTF::HashTableIteratorAdapter<WTF::HashTable<int, int,
WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >,
WebCore::AtomicStringImpl*>::~HashTableIteratorAdapter()
        18       WebCore::StyleInheritedData::~StyleInheritedData()
        17       std::pair<WTF::HashTableIteratorAdapter<WTF::HashTable<int,
int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>,
WTF::HashTraits<int> >, WebCore::AtomicStringImpl*>,
bool>::pair<WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>,
WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >,
bool>(std::pair<WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>,
WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >, bool> const&)
        16       WebCore::operator!=(WebCore::AtomicString const&,
WebCore::AtomicString const&)
        15       WTF::HashTableConstIterator<int, std::pair<int, int>,
WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned int>,
WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >,
WTF::HashTraits<int> >::~HashTableConstIterator()
        15       WebCore::CSSSelector::hasAttribute() const
        15       WebCore::CSSStyleSelector::applyProperty(int,
WebCore::CSSValue*)
        15       WebCore::QualifiedName::operator==(WebCore::QualifiedName
const&) const
        15       WebCore::StringImpl::StringImpl(char const*, unsigned int)
[snip]


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list