зеркало из https://github.com/mozilla/pjs.git
353 строки
6.0 KiB
Plaintext
353 строки
6.0 KiB
Plaintext
# Categorization rules for spacetrace
|
|
#
|
|
# This file defines the stack frame rules that will categorize
|
|
# allocations that spacetrace processes. The format of this file is
|
|
#
|
|
# <categoryname>
|
|
# initial string match for stack frame n
|
|
# initial string match for stack frame n+1
|
|
# initial string match for stack frame n+2
|
|
#
|
|
# The key in the matching rule is that for every rule, we provide a
|
|
# snippet of the stack frame - contiguous substring matches.
|
|
# categorynames and rules substring matches are case sensitive
|
|
#
|
|
# Predefined Categories
|
|
# "All" - All allocations [default]
|
|
# "uncategorized" - All allocations that dont match any category
|
|
#
|
|
#
|
|
# Suresh Duddi <dp@netscape.com>
|
|
###########################################################################
|
|
# NOTE: This is still under definition
|
|
###########################################################################
|
|
# General principle of categorization:
|
|
#
|
|
# - Each category, in general, denotes a module or feature.
|
|
#
|
|
# - We assign each allocation to the module/feature that directly
|
|
# caused the allocation irrespective of which higher level module
|
|
# caused the allocation. There are very few exceptions usually when
|
|
# an allocation belongs both to a feature-category and to a
|
|
# module-category.
|
|
#
|
|
# bookmarks
|
|
# Bookmarks. Mainly initialization. Does not include menu cost.
|
|
# css
|
|
# Cascading style sheets
|
|
# dom
|
|
# Memory held by DOM.
|
|
# font
|
|
# All font stuff
|
|
# global-history
|
|
# html
|
|
# html parsing and layout
|
|
# images
|
|
# All images.
|
|
# jar
|
|
# jar, zip
|
|
# js
|
|
# javascript
|
|
# necko
|
|
# All protocol and uri stuff. All urls created accounted here
|
|
# preferences
|
|
# Preferences stuff. All js cost for preferences is included here.
|
|
## rdf
|
|
# Most of the rdf allocations. rdf cost from xul, chromeregistry,
|
|
# is assigned to xul.
|
|
#
|
|
# wallet
|
|
# Form cache.
|
|
#
|
|
# xbl
|
|
# xbl stuff. Includes js in xbl.
|
|
# xpcom
|
|
# xpcom, xpt. Allocations for creations of objects are assigned
|
|
# onto the respective modules
|
|
# xul
|
|
# XUL parsing and layout. Includes rdf overhead from xul like
|
|
# nsChromeRegistry
|
|
#
|
|
|
|
|
|
#
|
|
|
|
# ===========================================================================
|
|
# Leaf rules. We categorize them out first.
|
|
# All allocations matching these rules DO belong to the category.
|
|
# ===========================================================================
|
|
|
|
<js>
|
|
nsXULPrototypeScript::Deserialize
|
|
|
|
<X>
|
|
XSupportsLocale
|
|
|
|
<X>
|
|
/usr/X11R6/lib/libX11.so
|
|
|
|
<js>
|
|
JS_Init
|
|
|
|
<atoms>
|
|
NS_NewPermanentAtom
|
|
|
|
<images>
|
|
gfxImageFrame::Init
|
|
|
|
<images>
|
|
gif_write
|
|
|
|
<jar>
|
|
nsZipArchive::BuildFileList
|
|
|
|
<jar>
|
|
nsZipArchive::ReadInit
|
|
|
|
<jar>
|
|
nsJARChannel::Open
|
|
|
|
<xpcom>
|
|
NS_InitXPCOM2
|
|
|
|
# xpt file loads
|
|
<xpcom>
|
|
xptiInterfaceInfoManager::LoadFile
|
|
|
|
<xpcom>
|
|
nsGenericModule::Initialize
|
|
|
|
<intl>
|
|
nsStringBundle
|
|
|
|
<intl>
|
|
nsLocale::
|
|
|
|
<intl>
|
|
nsCharsetConverterManager::
|
|
|
|
<necko>
|
|
nsHttpChannel::AsyncOpen
|
|
|
|
<necko>
|
|
nsDiskCacheDevice::Init
|
|
|
|
<necko>
|
|
nsCacheEntryDescriptor::nsTransportWrapper::OpenOutputStream
|
|
|
|
<necko>
|
|
nsSocketTransport::
|
|
|
|
<necko>
|
|
nsCacheService::
|
|
|
|
<wallet>
|
|
WLLT
|
|
|
|
<xul>
|
|
nsXULElement::Create
|
|
|
|
<xul>
|
|
nsXULAttribute::Create
|
|
|
|
<xul>
|
|
nsXULDocument::AddElementToMap
|
|
|
|
<xul>
|
|
XULContentSinkImpl::AddAttributes
|
|
|
|
<xul>
|
|
XULContentSinkImpl::CreateElement
|
|
|
|
<xul>
|
|
nsXULElement::SetAttr
|
|
|
|
<xul>
|
|
nsXULDocument::InsertElement
|
|
|
|
<xul>
|
|
NS_NewXULContentBuilder
|
|
|
|
<xul>
|
|
nsXULElement::AppendChildTo
|
|
|
|
<xbl>
|
|
nsXBLPrototypeHandler::AppendHandlerText(
|
|
|
|
<html>
|
|
FrameArena::AllocateFrame
|
|
|
|
<global-history>
|
|
nsGlobalHistory::OpenDB
|
|
|
|
<font>
|
|
nsFontCache::
|
|
|
|
<font>
|
|
nsFontMetricsGTK::
|
|
|
|
<font>
|
|
nsFont::nsFont
|
|
|
|
<gtk>
|
|
gtk_init
|
|
|
|
<rdf>
|
|
RDFServiceImpl::GetResource
|
|
|
|
<rdf>
|
|
RDFContentSinkImpl::AddProperties
|
|
|
|
<rdf>
|
|
RDFContainerImpl::AppendElement
|
|
|
|
<rdf>
|
|
RDFXMLDataSourceImpl::Assert
|
|
|
|
<rdf>
|
|
NS_NewRDFInMemoryDataSource
|
|
|
|
<css>
|
|
CSSParserImpl::Parse(
|
|
|
|
<css>
|
|
NS_NewCSS
|
|
|
|
<css>
|
|
RuleHash::AppendRule
|
|
|
|
<css>
|
|
nsRuleNode::GetStyleData
|
|
|
|
<css>
|
|
CSSRuleProcessor::RulesMatching
|
|
|
|
<css>
|
|
CSSStyleSheetImpl::Clone
|
|
|
|
<necko>
|
|
nsHttpHeaderArray::
|
|
|
|
<html>
|
|
nsScanner::Append
|
|
|
|
<html>
|
|
nsHTMLTokenizer::
|
|
|
|
<html>
|
|
NS_NewHTMLTokenizer
|
|
|
|
<html>
|
|
nsSlidingString::
|
|
|
|
<html>
|
|
CNavDTD::CNavDTD
|
|
|
|
# ======================================================================
|
|
# Rules that match higher up on the stack
|
|
# These go later.
|
|
# ======================================================================
|
|
|
|
<preferences>
|
|
PREF_
|
|
|
|
<bookmarks>
|
|
nsBookmarksService::
|
|
|
|
<xbl>
|
|
nsXBLService::LoadBindings
|
|
|
|
<xbl>
|
|
nsXBLBinding::ExecuteAttachedHandler
|
|
|
|
<js>
|
|
nsXULDocument::LoadScript
|
|
|
|
<js>
|
|
nsXULDocument::ExecuteScript
|
|
|
|
<xul>
|
|
XULContentSinkImpl::Open
|
|
|
|
<rdf>
|
|
RDFContentSinkImpl::HandleEndElement
|
|
|
|
<html>
|
|
HTMLContentSink::AddAttributes
|
|
|
|
<html>
|
|
HTMLContentSink::OpenContainer
|
|
|
|
<html>
|
|
HTMLContentSink::CloseContainer
|
|
|
|
# XXX whom to account LoadImage to? I am going with images.
|
|
<images>
|
|
imgLoader::LoadImage
|
|
|
|
<html>
|
|
StackArena::
|
|
|
|
# ======================================================================
|
|
# Even more genralized rules. There could be lots of activity that
|
|
# happens below them in the stack. But we are sure we have categorized
|
|
# a lot of them by using the rules above and know the category of the
|
|
# most of the rest.
|
|
# ======================================================================
|
|
|
|
<rdf>
|
|
RDFContentSinkImpl::
|
|
|
|
<dom>
|
|
nsGenericDOMDataNode::
|
|
|
|
<dom>
|
|
nsDOMClassInfo::
|
|
|
|
<dom>
|
|
nsDOMSOFactory::
|
|
|
|
<xul>
|
|
nsXULTemplateBuilder::
|
|
|
|
<xul>
|
|
XULContentSinkImpl::HandleEndElement
|
|
|
|
<xul>
|
|
nsChromeRegistry::
|
|
|
|
<js>
|
|
nsJSContext::EvaluateString
|
|
|
|
# Almost all of what is left with XULContentSink belongs to xul
|
|
# Also, this was roughly 0.3% of startup memory
|
|
<xul>
|
|
XULContentSinkImpl::
|
|
|
|
# XXX this is a wild guess -> html What remains here is about
|
|
# XXX 1.5% of startup footprint
|
|
<html>
|
|
HTMLContentSink::
|
|
|
|
<xbl>
|
|
nsXBLContentSink::
|
|
|
|
<xbl>
|
|
nsXBLStreamListener::OnDataAvailable
|
|
|
|
<necko>
|
|
nsIOService::NewURI
|
|
|
|
<necko>
|
|
nsIOService::NewChannelFromURI
|
|
|
|
# Catchalls to help categorize
|
|
# ----------------------------------------------------------------------
|
|
<js-catchall>
|
|
js_
|
|
|
|
# Everything else
|
|
# ----------------------------------------------------------------------
|
|
# <uncategorized>
|
|
# This is a predefined category. Dont create it yourself.
|