On Thu, Mar 20, 2014 at 11:46 PM, Nicholas Nethercote
<n.netherc...@gmail.com> wrote:
>
> At start-up, with a new profile, Firefox creates more than 230 system
> compartments.

I just measured again and got 198, which is great! The start-up
numbers on AWSY have improved by maybe 5-10 MiB since I started this
thread. (Unfortunately, it's hard to tell exactly because the
measurements are noisy.)

This is partly because a bunch of people identified modules that could
be loaded lazily (see the bugs blocking
https://bugzilla.mozilla.org/show_bug.cgi?id=986323) and partly
because bholley managed to merge a whole clump of compartments
(https://bugzilla.mozilla.org/show_bug.cgi?id=993772).

Also, bholley and I identified a previously unidentified source of
compartment overhead involving XPCWrappedNatives. See
https://bugzilla.mozilla.org/show_bug.cgi?id=997906 for the gory
details. bholley is planning to tackle this soon.

Overall, some decent progress! Please keep an eye out for more modules
that can be lazily loaded. I've given the list of current start-up
(+30s) modules below. (You can also see them for yourself in
about:memory, in the "js-main-runtime-compartments" tree.) There are
still 16 compartments whose name includes "devtools", for example.

Nick


about:blank [2]
inProcessTabChildGlobal?ownedBy=chrome://browser/content/browser.xul [2]
XPConnect Junk Compartment
[anonymous sandbox] (from: resource://gre/modules/devtools/Loader.jsm:16)
about:memory
about:newtab
about:sessionrestore
data:application/vnd.mozilla.xul+xml;charset=utf-8,<window%20id='win'/>
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/DownloadsStartup.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/ExperimentsService.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/WebContentConverter.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/devtools-clhandler.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/nsBrowserContentHandler.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/nsBrowserGlue.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/nsSessionStartup.js
file:///home/njn/moz/mi0/co64/dist/bin/browser/components/nsSetDefaultBrowser.js
file:///home/njn/moz/mi0/co64/dist/bin/components/BrowserElementParent.js
file:///home/njn/moz/mi0/co64/dist/bin/components/CrashService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/DataReportingService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/FormHistoryStartup.js
file:///home/njn/moz/mi0/co64/dist/bin/components/InterAppCommService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/PageThumbsProtocol.js
file:///home/njn/moz/mi0/co64/dist/bin/components/PeerConnection.js
file:///home/njn/moz/mi0/co64/dist/bin/components/PushServiceLauncher.js
file:///home/njn/moz/mi0/co64/dist/bin/components/TelemetryStartup.js
file:///home/njn/moz/mi0/co64/dist/bin/components/UnifiedComplete.js
file:///home/njn/moz/mi0/co64/dist/bin/components/Weave.js
file:///home/njn/moz/mi0/co64/dist/bin/components/addonManager.js
file:///home/njn/moz/mi0/co64/dist/bin/components/marionettecomponent.js
file:///home/njn/moz/mi0/co64/dist/bin/components/messageWakeupService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsBlocklistService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsContentPrefService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsCrashMonitor.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsDefaultCLH.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsHandlerService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsIDService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsLivemarkService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsLoginManager.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsPlacesAutoComplete.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsSearchService.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsURLFormatter.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsUpdateServiceStub.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsUpdateTimerManager.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsUrlClassifierHashCompleter.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsUrlClassifierLib.js
file:///home/njn/moz/mi0/co64/dist/bin/components/nsUrlClassifierListManager.js
file:///home/njn/moz/mi0/co64/dist/bin/components/recording-cmdline.js
file:///home/njn/moz/mi0/co64/dist/bin/components/reftest-cmdline.js
inProcessTabChildGlobal?ownedBy=data:application/vnd.mozilla.xul+xml;charset=utf
-8,<window%20id='win'/>
resource:///modules/AboutHome.jsm
resource:///modules/BrowserNewTabPreloader.jsm
resource:///modules/BrowserUITelemetry.jsm
resource:///modules/ContentClick.jsm
resource:///modules/ContentLinkHandler.jsm
resource:///modules/CustomizableUI.jsm
resource:///modules/CustomizableWidgets.jsm
resource:///modules/DownloadsCommon.jsm
resource:///modules/DownloadsTaskbar.jsm
resource:///modules/NetworkPrioritizer.jsm
resource:///modules/PanelWideWidgetTracker.jsm
resource:///modules/PlacesUIUtils.jsm
resource:///modules/RecentWindow.jsm
resource:///modules/RemotePrompt.jsm
resource:///modules/Social.jsm
resource:///modules/WebappManager.jsm
resource:///modules/devtools/ToolboxProcess.jsm
resource:///modules/devtools/ViewHelpers.jsm
resource:///modules/devtools/gDevTools.jsm
resource:///modules/devtools/main.js (from: resource://gre/modules/commonjs/tool
kit/loader.js:232)
resource:///modules/devtools/scratchpad-manager.jsm
resource:///modules/devtools/shared/telemetry.js (from: resource://gre/modules/c
ommonjs/toolkit/loader.js:232)
resource:///modules/distribution.js
resource:///modules/experiments/Experiments.jsm
resource:///modules/sessionstore/ContentRestore.jsm
resource:///modules/sessionstore/DocShellCapabilities.jsm
resource:///modules/sessionstore/FrameTree.jsm
resource:///modules/sessionstore/GlobalState.jsm
resource:///modules/sessionstore/PageStyle.jsm
resource:///modules/sessionstore/PrivacyFilter.jsm
resource:///modules/sessionstore/SessionCookies.jsm
resource:///modules/sessionstore/SessionFile.jsm
resource:///modules/sessionstore/SessionHistory.jsm
resource:///modules/sessionstore/SessionSaver.jsm
resource:///modules/sessionstore/SessionStorage.jsm
resource:///modules/sessionstore/SessionStore.jsm
resource:///modules/sessionstore/TabAttributes.jsm
resource:///modules/sessionstore/TabState.jsm
resource:///modules/sessionstore/TabStateCache.jsm
resource:///modules/sessionstore/Utils.jsm
resource:///modules/webrtcUI.jsm
resource://gre/modules/ActivitiesService.jsm
resource://gre/modules/AddonManager.jsm
resource://gre/modules/AppDownloadManager.jsm
resource://gre/modules/AppsUtils.jsm
resource://gre/modules/AsyncShutdown.jsm
resource://gre/modules/BackgroundPageThumbs.jsm
resource://gre/modules/BrowserUtils.jsm
resource://gre/modules/CharsetMenu.jsm
resource://gre/modules/ChromeManifestParser.jsm
resource://gre/modules/ContentPrefService2.jsm
resource://gre/modules/ContentPrefStore.jsm
resource://gre/modules/CrashManager.jsm
resource://gre/modules/CrashMonitor.jsm
resource://gre/modules/DOMIdentity.jsm
resource://gre/modules/DeferredSave.jsm
resource://gre/modules/DeferredTask.jsm
resource://gre/modules/DirectoryLinksProvider.jsm
resource://gre/modules/DownloadCore.jsm
resource://gre/modules/DownloadIntegration.jsm
resource://gre/modules/DownloadList.jsm
resource://gre/modules/DownloadStore.jsm
resource://gre/modules/Downloads.jsm
resource://gre/modules/FileUtils.jsm
resource://gre/modules/FormData.jsm
resource://gre/modules/FxAccounts.jsm
resource://gre/modules/FxAccountsCommon.js
resource://gre/modules/HealthReport.jsm
resource://gre/modules/IndexedDBHelper.jsm
resource://gre/modules/InlineSpellChecker.jsm
resource://gre/modules/LightweightThemeConsumer.jsm
resource://gre/modules/LightweightThemeManager.jsm
resource://gre/modules/Log.jsm
resource://gre/modules/Metrics.jsm
resource://gre/modules/NetUtil.jsm
resource://gre/modules/NewTabUtils.jsm
resource://gre/modules/NotificationDB.jsm
resource://gre/modules/PageThumbs.jsm
resource://gre/modules/PlacesBackups.jsm
resource://gre/modules/PlacesUtils.jsm
resource://gre/modules/Preferences.jsm
resource://gre/modules/PrivateBrowsingUtils.jsm
resource://gre/modules/Promise.jsm
resource://gre/modules/SafeBrowsing.jsm
resource://gre/modules/ScrollPosition.jsm
resource://gre/modules/Services.jsm
resource://gre/modules/SharedPromptUtils.jsm
resource://gre/modules/SocialService.jsm
resource://gre/modules/Sqlite.jsm
resource://gre/modules/Task.jsm
resource://gre/modules/TelemetryPing.jsm
resource://gre/modules/TelemetryStopwatch.jsm
resource://gre/modules/TelemetryTimestamps.jsm
resource://gre/modules/ThirdPartyCookieProbe.jsm
resource://gre/modules/Timer.jsm
resource://gre/modules/UITelemetry.jsm
resource://gre/modules/Webapps.jsm
resource://gre/modules/WindowDraggingUtils.jsm
resource://gre/modules/WindowsPrefSync.jsm
resource://gre/modules/XPCOMUtils.jsm
resource://gre/modules/XPathGenerator.jsm
resource://gre/modules/addons/PluginProvider.jsm
resource://gre/modules/addons/XPIProvider.jsm
resource://gre/modules/commonjs/sdk/core/heritage.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/core/namespace.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/platform/xpcom.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/system/events.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/util/array.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/util/object.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/sdk/util/uuid.js (from:
resource://gre/modules/commonjs/toolkit/loader.js:232)
resource://gre/modules/commonjs/toolkit/loader.js
resource://gre/modules/ctypes.jsm
resource://gre/modules/debug.js
resource://gre/modules/devtools/Console.jsm
resource://gre/modules/devtools/DevToolsUtils.js (from: resource://gre/modules/c
ommonjs/toolkit/loader.js:232)
resource://gre/modules/devtools/DevToolsUtils.jsm
resource://gre/modules/devtools/Loader.jsm
resource://gre/modules/devtools/Require.jsm
resource://gre/modules/devtools/SourceMap.jsm
resource://gre/modules/devtools/event-emitter.js
resource://gre/modules/devtools/event-emitter.js (from: resource://gre/modules/c
ommonjs/toolkit/loader.js:232)
resource://gre/modules/jsdebugger.jsm
resource://gre/modules/osfile.jsm
resource://gre/modules/osfile/_PromiseWorker.jsm
resource://gre/modules/osfile/osfile_async_front.jsm
resource://gre/modules/osfile/osfile_native.jsm
resource://gre/modules/osfile/osfile_shared_allthreads.jsm
resource://gre/modules/osfile/osfile_unix_allthreads.jsm
resource://gre/modules/osfile/ospath.jsm
resource://gre/modules/osfile/ospath_unix.jsm
resource://gre/modules/reflect.jsm
resource://pdf.js/PdfJs.jsm
resource://pdf.js/PdfRedirector.jsm
resource://pdf.js/PdfStreamConverter.jsm
resource://services-common/async.js
resource://services-common/observers.js
resource://services-common/rest.js
resource://services-common/stringbundle.js
resource://services-common/utils.js
resource://services-crypto/utils.js
resource://services-sync/constants.js
resource://services-sync/healthreport.jsm
resource://services-sync/util.js
resource://shumway/ShumwayStreamConverter.jsm
resource://shumway/ShumwayUtils.jsm
atoms
null-principal
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to