[Webkit-unassigned] [Bug 86281] 59% of Vector buffer capacity is unused

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon May 14 21:34:19 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=86281





--- Comment #12 from Simon Fraser (smfr) <simon.fraser at apple.com>  2012-05-14 21:33:22 PST ---
If we use fewer stack frames to amalgamate stacks, we see that JSC has some waste as well:

105272 extant vectors wasting 19.34MB 75.93% (used 6428218 bytes, capacity 26705401 bytes):

Most wasteful 20 stacks
13177 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10344e855 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
2   0x10343c115 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
3   0x10342fba1 WebCore::RuleSet::addToRuleSet(WTF::AtomicStringImpl*, WTF::HashMap<WTF::AtomicStringImpl*, WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> >, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> > > >&, WebCore::RuleData const&)
4   0x10342fd63 WebCore::RuleSet::addRule(WebCore::StyleRule*, WebCore::CSSSelector*, bool, bool, bool)
5   0x103430400 WebCore::RuleSet::addStyleRule(WebCore::StyleRule*, bool, bool, bool)

10050 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10344e855 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
2   0x10343c115 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
3   0x10342fba1 WebCore::RuleSet::addToRuleSet(WTF::AtomicStringImpl*, WTF::HashMap<WTF::AtomicStringImpl*, WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> >, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> > > >&, WebCore::RuleData const&)
4   0x10342fd06 WebCore::RuleSet::addRule(WebCore::StyleRule*, WebCore::CSSSelector*, bool, bool, bool)
5   0x103430400 WebCore::RuleSet::addStyleRule(WebCore::StyleRule*, bool, bool, bool)

1379 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011acae5 WTF::Vector<JSC::ValueProfile, 0ul>::Vector()
2   0x10119c795 WTF::Vector<JSC::ValueProfile, 0ul>::Vector()
3   0x101195868 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
4   0x10129e9f2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
5   0x101297a88 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

6818 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10116fa15 WTF::Vector<JSC::Identifier, 0ul>::Vector()
2   0x1013b9eb0 JSC::FunctionParameters::FunctionParameters(JSC::ParameterNode*)
3   0x1013b9e7d JSC::FunctionParameters::FunctionParameters(JSC::ParameterNode*)
4   0x1013bac29 JSC::FunctionParameters::create(JSC::ParameterNode*)
5   0x1013b9f54 JSC::FunctionBodyNode::finishParsing(JSC::SourceCode const&, JSC::ParameterNode*, JSC::Identifier const&)

1457 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x101179f25 WTF::Vector<JSC::InlineCallFrame, 4ul>::Vector()
2   0x1011795f5 WTF::Vector<JSC::InlineCallFrame, 4ul>::Vector()
3   0x101179594 WTF::SegmentedVector<JSC::InlineCallFrame, 4ul>::SegmentedVector()
4   0x101179435 WTF::SegmentedVector<JSC::InlineCallFrame, 4ul>::SegmentedVector()
5   0x1011792e9 JSC::CodeBlock::RareData::RareData()

1457 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x101179e15 WTF::Vector<WTF::Vector<JSC::InlineCallFrame, 4ul>*, 32ul>::Vector()
2   0x101179615 WTF::Vector<WTF::Vector<JSC::InlineCallFrame, 4ul>*, 32ul>::Vector()
3   0x1011795a6 WTF::SegmentedVector<JSC::InlineCallFrame, 4ul>::SegmentedVector()
4   0x101179435 WTF::SegmentedVector<JSC::InlineCallFrame, 4ul>::SegmentedVector()
5   0x1011792e9 JSC::CodeBlock::RareData::RareData()

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011ac6f5 WTF::Vector<WTF::Vector<JSC::RareCaseProfile, 8ul>*, 32ul>::Vector()
2   0x1011abef5 WTF::Vector<WTF::Vector<JSC::RareCaseProfile, 8ul>*, 32ul>::Vector()
3   0x1011abe86 WTF::SegmentedVector<JSC::RareCaseProfile, 8ul>::SegmentedVector()
4   0x10119c7d5 WTF::SegmentedVector<JSC::RareCaseProfile, 8ul>::SegmentedVector()
5   0x1011958a1 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011ac6f5 WTF::Vector<WTF::Vector<JSC::RareCaseProfile, 8ul>*, 32ul>::Vector()
2   0x1011abef5 WTF::Vector<WTF::Vector<JSC::RareCaseProfile, 8ul>*, 32ul>::Vector()
3   0x1011abe86 WTF::SegmentedVector<JSC::RareCaseProfile, 8ul>::SegmentedVector()
4   0x10119c7d5 WTF::SegmentedVector<JSC::RareCaseProfile, 8ul>::SegmentedVector()
5   0x10119588e JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011ad185 WTF::Vector<WTF::Vector<JSC::LLIntCallLinkInfo, 8ul>*, 32ul>::Vector()
2   0x1011ad105 WTF::Vector<WTF::Vector<JSC::LLIntCallLinkInfo, 8ul>*, 32ul>::Vector()
3   0x1011ad0b6 WTF::SegmentedVector<JSC::LLIntCallLinkInfo, 8ul>::SegmentedVector()
4   0x10119c645 WTF::SegmentedVector<JSC::LLIntCallLinkInfo, 8ul>::SegmentedVector()
5   0x101195771 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011ac9d5 WTF::Vector<WTF::Vector<JSC::ValueProfile, 8ul>*, 32ul>::Vector()
2   0x1011ac955 WTF::Vector<WTF::Vector<JSC::ValueProfile, 8ul>*, 32ul>::Vector()
3   0x1011ac906 WTF::SegmentedVector<JSC::ValueProfile, 8ul>::SegmentedVector()
4   0x10119c7b5 WTF::SegmentedVector<JSC::ValueProfile, 8ul>::SegmentedVector()
5   0x10119587b JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10117ea85 WTF::Vector<JSC::LLIntCallLinkInfo, 8ul>::Vector()
2   0x10117ea05 WTF::Vector<JSC::LLIntCallLinkInfo, 8ul>::Vector()
3   0x1011ad0a4 WTF::SegmentedVector<JSC::LLIntCallLinkInfo, 8ul>::SegmentedVector()
4   0x10119c645 WTF::SegmentedVector<JSC::LLIntCallLinkInfo, 8ul>::SegmentedVector()
5   0x101195771 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

3385 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x101405075 WTF::Vector<WTF::RefPtr<WTF::StringImpl>, 0ul>::Vector()
2   0x101404ff5 WTF::Vector<WTF::RefPtr<WTF::StringImpl>, 0ul>::Vector()
3   0x101404fc6 JSC::SourceProviderCacheItem::SourceProviderCacheItem(int, int)
4   0x101403be1 JSC::SourceProviderCacheItem::SourceProviderCacheItem(int, int)
5   0x10140ce93 bool JSC::Parser<JSC::Lexer<unsigned short> >::parseFunctionInfo<(JSC::FunctionRequirements)0, false, JSC::SyntaxChecker>(JSC::SyntaxChecker&, JSC::Identifier const*&, JSC::SyntaxChecker::FormalParameterList&, JSC::SyntaxChecker::FunctionBody&, int&, int&, int&)

1379 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011acf15 WTF::Vector<JSC::StructureStubInfo, 0ul>::Vector()
2   0x10119c685 WTF::Vector<JSC::StructureStubInfo, 0ul>::Vector()
3   0x101195797 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
4   0x10129e9f2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
5   0x101297a88 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

310 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10344e855 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
2   0x10343c115 WTF::Vector<WebCore::RuleData, 0ul>::Vector()
3   0x10342fba1 WebCore::RuleSet::addToRuleSet(WTF::AtomicStringImpl*, WTF::HashMap<WTF::AtomicStringImpl*, WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> >, WTF::PtrHash<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::AtomicStringImpl*>, WTF::HashTraits<WTF::OwnPtr<WTF::Vector<WebCore::RuleData, 0ul> > > >&, WebCore::RuleData const&)
4   0x10342ff1c WebCore::RuleSet::addRule(WebCore::StyleRule*, WebCore::CSSSelector*, bool, bool, bool)
5   0x103430400 WebCore::RuleSet::addStyleRule(WebCore::StyleRule*, bool, bool, bool)

1457 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10117a155 WTF::Vector<JSC::LineInfo, 0ul>::Vector()
2   0x1011793f5 WTF::Vector<JSC::LineInfo, 0ul>::Vector()
3   0x1011792c9 JSC::CodeBlock::RareData::RareData()
4   0x101175ba5 JSC::CodeBlock::RareData::RareData()
5   0x1011741e4 JSC::CodeBlock::createRareDataIfNecessary()

1457 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x10117a255 WTF::Vector<JSC::ExpressionRangeInfo, 0ul>::Vector()
2   0x1011793d5 WTF::Vector<JSC::ExpressionRangeInfo, 0ul>::Vector()
3   0x1011792b9 JSC::CodeBlock::RareData::RareData()
4   0x101175ba5 JSC::CodeBlock::RareData::RareData()
5   0x1011741e4 JSC::CodeBlock::createRareDataIfNecessary()

1446 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x101185ee5 WTF::Vector<JSC::ValueProfile, 8ul>::Vector()
2   0x101185d05 WTF::Vector<JSC::ValueProfile, 8ul>::Vector()
3   0x1011ac8f4 WTF::SegmentedVector<JSC::ValueProfile, 8ul>::SegmentedVector()
4   0x10119c7b5 WTF::SegmentedVector<JSC::ValueProfile, 8ul>::SegmentedVector()
5   0x10119587b JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

1379 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011ace35 WTF::Vector<JSC::CallLinkInfo, 0ul>::Vector()
2   0x10119c6d5 WTF::Vector<JSC::CallLinkInfo, 0ul>::Vector()
3   0x1011957bd JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
4   0x10129e9f2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
5   0x101297a88 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

5512 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x103413da5 WTF::Vector<WebCore::CSSProperty, 4ul>::Vector()
2   0x10340e195 WTF::Vector<WebCore::CSSProperty, 4ul>::Vector()
3   0x1034086ac WebCore::StylePropertySet::StylePropertySet(WebCore::CSSProperty const*, int, WebCore::CSSParserMode)
4   0x103408659 WebCore::StylePropertySet::StylePropertySet(WebCore::CSSProperty const*, int, WebCore::CSSParserMode)
5   0x102071775 WebCore::StylePropertySet::create(WebCore::CSSProperty const*, int, WebCore::CSSParserMode)

1379 vectors, 618.36KB used of 8247.54KB, 7629.18KB wasted at:
1   0x1011a69e5 WTF::Vector<JSC::WriteBarrier<JSC::Unknown>, 0ul>::Vector()
2   0x10119dbd5 WTF::Vector<JSC::WriteBarrier<JSC::Unknown>, 0ul>::Vector()
3   0x1011958f7 JSC::CodeBlock::CodeBlock(JSC::ScriptExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, WTF::HashMap<WTF::RefPtr<WTF::StringImpl>, JSC::SymbolTableEntry, JSC::IdentifierRepHash, WTF::HashTraits<WTF::RefPtr<WTF::StringImpl> >, JSC::SymbolTableIndexHashTraits>*, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
4   0x10129e9f2 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)
5   0x101297a88 JSC::FunctionCodeBlock::FunctionCodeBlock(JSC::FunctionExecutable*, JSC::CodeType, JSC::JSGlobalObject*, WTF::PassRefPtr<JSC::SourceProvider>, unsigned int, bool, WTF::PassOwnPtr<JSC::CodeBlock>)

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



More information about the webkit-unassigned mailing list