Bug 186738
Summary: | SourceProviderCache wastes 295KB of HashTable capacity on nytimes.com | ||
---|---|---|---|
Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | keith_miller, saam, simon.fraser |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Simon Fraser (smfr)
Using tooling from bug 186698, loading can and running "notifyutil -p com.apple.WebKit.dumpHashTableCapacity" shows:
Wasted capacity: 294864 bytes (used 145584 of 440448 bytes, utilization: 33.05%) - 770 allocations
1 0x1166ce2d5 WTF::HashTable<int, WTF::KeyValuePair<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >, WTF::IntHash<int>, WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::KeyValuePairTraits, WTF::UnsignedWithZeroKeyHashTraits<int> >::HashTable()
2 0x1166ce2b5 WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::HashMap()
3 0x1166ce295 WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::HashMap()
4 0x1166ce24f JSC::SourceProviderCache::SourceProviderCache()
5 0x1166c6755 JSC::SourceProviderCache::SourceProviderCache()
6 0x1166c6615 JSC::VM::addSourceProviderCache(JSC::SourceProvider*)
7 0x116293338 JSC::Parser<JSC::Lexer<unsigned char> >::Parser(JSC::VM*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::JSParserScriptMode, JSC::SourceParseMode, JSC::SuperBinding, JSC::ConstructorKind, JSC::DerivedContextType, bool, JSC::EvalContextType, JSC::DebuggerParseData*)
8 0x116293d71 JSC::Parser<JSC::Lexer<unsigned char> >::Parser(JSC::VM*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::JSParserScriptMode, JSC::SourceParseMode, JSC::SuperBinding, JSC::ConstructorKind, JSC::DerivedContextType, bool, JSC::EvalContextType, JSC::DebuggerParseData*)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Simon Fraser (smfr)
More here:
Wasted capacity: 204048 bytes (used 102640 of 306688 bytes, utilization: 33.47%) - 11 allocations
1 0x1166ce2d5 WTF::HashTable<int, WTF::KeyValuePair<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >, WTF::IntHash<int>, WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::KeyValuePairTraits, WTF::UnsignedWithZeroKeyHashTraits<int> >::HashTable()
2 0x1166ce2b5 WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::HashMap()
3 0x1166ce295 WTF::HashMap<int, std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> >, WTF::IntHash<int>, WTF::UnsignedWithZeroKeyHashTraits<int>, WTF::HashTraits<std::__1::unique_ptr<JSC::SourceProviderCacheItem, std::__1::default_delete<JSC::SourceProviderCacheItem> > > >::HashMap()
4 0x1166ce24f JSC::SourceProviderCache::SourceProviderCache()
5 0x1166c6755 JSC::SourceProviderCache::SourceProviderCache()
6 0x1166c6615 JSC::VM::addSourceProviderCache(JSC::SourceProvider*)
7 0x1162a2a98 JSC::Parser<JSC::Lexer<unsigned short> >::Parser(JSC::VM*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::JSParserScriptMode, JSC::SourceParseMode, JSC::SuperBinding, JSC::ConstructorKind, JSC::DerivedContextType, bool, JSC::EvalContextType, JSC::DebuggerParseData*)
8 0x1162a2f81 JSC::Parser<JSC::Lexer<unsigned short> >::Parser(JSC::VM*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::JSParserScriptMode, JSC::SourceParseMode, JSC::SuperBinding, JSC::ConstructorKind, JSC::DerivedContextType, bool, JSC::EvalContextType, JSC::DebuggerParseData*)