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