Bug 186734
Summary: | FunctionCodeBlock wastes 144KB of HashTable capacity on cnn.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, webkit-bug-importer, ysuzuki |
Priority: | P2 | Keywords: | InRadar |
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: 143952 bytes (used 37488 of 181440 bytes, utilization: 20.66%) - 4780 allocations
1 0x115776625 WTF::HashTable<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::KeyValuePair<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::KeyValuePairTraits, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> > >::HashTable()
2 0x115776605 WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::HashMap()
3 0x11574ef25 WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::HashMap()
4 0x1157504a5 JSC::CodeBlock::CodeBlock(JSC::VM*, JSC::Structure*, JSC::ScriptExecutable*, JSC::UnlinkedCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
5 0x11666020b JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::VM*, JSC::Structure*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
6 0x11665ffa2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::VM*, JSC::Structure*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
7 0x116659b2e JSC::FunctionCodeBlock::create(JSC::VM*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
8 0x11665967b JSC::ScriptExecutable::newCodeBlockFor(JSC::CodeSpecializationKind, JSC::JSFunction*, JSC::JSScope*, JSC::JSObject*&)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/41189150>
Simon Fraser (smfr)
> 300KB on nytimes.com:
Wasted capacity: 301344 bytes (used 77088 of 378432 bytes, utilization: 20.37%) - 8369 allocations
1 0x115776625 WTF::HashTable<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::KeyValuePair<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::KeyValuePairTraits, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> > >::HashTable()
2 0x115776605 WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::HashMap()
3 0x11574ef25 WTF::HashMap<std::__1::tuple<JSC::Structure*, JSC::Instruction*>, WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > >, WTF::TupleHash<JSC::Structure*, JSC::Instruction*>, WTF::HashTraits<std::__1::tuple<JSC::Structure*, JSC::Instruction*> >, WTF::HashTraits<WTF::Bag<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint, WTF::DumbPtrTraits<WTF::Private::BagNode<JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint> > > > >::HashMap()
4 0x1157504a5 JSC::CodeBlock::CodeBlock(JSC::VM*, JSC::Structure*, JSC::ScriptExecutable*, JSC::UnlinkedCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
5 0x11666020b JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::VM*, JSC::Structure*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
6 0x11665ffa2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::VM*, JSC::Structure*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
7 0x116659b2e JSC::FunctionCodeBlock::create(JSC::VM*, JSC::FunctionExecutable*, JSC::UnlinkedFunctionCodeBlock*, JSC::JSScope*, WTF::RefPtr<JSC::SourceProvider, WTF::DumbPtrTraits<JSC::SourceProvider> >&&, unsigned int, unsigned int)
8 0x11665967b JSC::ScriptExecutable::newCodeBlockFor(JSC::CodeSpecializationKind, JSC::JSFunction*, JSC::JSScope*, JSC::JSObject*&)