Bug 186738 - SourceProviderCache wastes 295KB of HashTable capacity on nytimes.com
Summary: SourceProviderCache wastes 295KB of HashTable capacity on nytimes.com
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-16 12:39 PDT by Simon Fraser (smfr)
Modified: 2018-06-16 12:40 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2018-06-16 12:39:18 PDT
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*)
Comment 1 Simon Fraser (smfr) 2018-06-16 12:40:51 PDT
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*)