Could someone please provide an update on reducing compartment overhead?

Are we at a point where things like services/healthreport/HealthReport.jsm 
should be considered a "necessary evil" rather than a "gross hack?"

What other solutions besides concatenating files and lazy loading are there? 
Neither sound particularly appealing to me. I'd really like to be able to "pin" 
specific JSMs to shared compartments. Kind of a hybrid between CPG and the 
monolithic compartment that came before. I filed a bug on that a year ago. 
Can't find it ATM...

> On Mar 20, 2014, at 23:47, Nicholas Nethercote <n.netherc...@gmail.com> wrote:
> 
> Hi,
> 
> At start-up, with a new profile, Firefox creates more than 230 system
> compartments. This is about 90 more than a year ago, and it's part of
> the reason why Firefox uses almost twice as much physical memory at
> start-up than it did two years ago. (Have a look at
> https://areweslimyet.com/ for the measurements.)
> 
> At the bottom of this email I have listed the system compartments.
> (You can generate this list yourself from the
> 'js-main-runtime-compartments' tree in about:memory.) Please look for
> any there that you know could be created lazily. For example, there
> are 16 that have "devtools" in the name, which sound unnecessary.
> 
> If you find some, please file a bug that blocks
> https://bugzilla.mozilla.org/show_bug.cgi?id=986323.
> 
> Also, while modularization is admirable, compartments aren't free. So
> if you see any compartments that could be merged easily, please
> consider doing that as well.
> 
> Thanks.
> 
> Nick
> 
> 
> atoms
> null-principal
> [System Principal], about:blank [2]
> [System Principal], about:newtab [2]
> [System Principal], chrome://browser/content/baseMenuOverlay.xul
> [System Principal], chrome://browser/content/browser.xul
> [System Principal], chrome://browser/content/customizableui/panelUI.xml
> [System Principal], chrome://browser/content/customizableui/toolbar.xml
> [System Principal], chrome://browser/content/downloads/download.xml
> [System Principal], chrome://browser/content/places/menu.xml
> [System Principal], chrome://browser/content/places/placesOverlay.xul
> [System Principal], chrome://browser/content/search/search.xml
> [System Principal], chrome://browser/content/socialchat.xml
> [System Principal], chrome://browser/content/tabbrowser.xml
> [System Principal], chrome://browser/content/urlbarBindings.xml
> [System Principal], chrome://global/content/bindings/autocomplete.xml
> [System Principal], chrome://global/content/bindings/browser.xml
> [System Principal], chrome://global/content/bindings/button.xml
> [System Principal], chrome://global/content/bindings/general.xml
> [System Principal], chrome://global/content/bindings/menu.xml
> [System Principal], chrome://global/content/bindings/notification.xml
> [System Principal], chrome://global/content/bindings/popup.xml
> [System Principal], chrome://global/content/bindings/scrollbar.xml
> [System Principal], chrome://global/content/bindings/scrollbox.xml
> [System Principal], chrome://global/content/bindings/splitter.xml
> [System Principal], chrome://global/content/bindings/stringbundle.xml
> [System Principal], chrome://global/content/bindings/tabbox.xml
> [System Principal], chrome://global/content/bindings/textbox.xml
> [System Principal], chrome://global/content/bindings/text.xml
> [System Principal], chrome://global/content/bindings/toolbarbutton.xml
> [System Principal], chrome://global/content/bindings/toolbar.xml
> [System Principal], chrome://global/content/editMenuOverlay.xul
> [System Principal], chrome://global/content/platformHTMLBindings.xml
> [System Principal],
> data:application/vnd.mozilla.xul+xml;charset=utf-8,<window%20id='win'/>
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/devtools-clhandler.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/DownloadsStartup.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/ExperimentsService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/nsBrowserContentHandler.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/nsBrowserGlue.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/nsSessionStartup.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/nsSetDefaultBrowser.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/browser/components/WebContentConverter.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/addonManager.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/BrowserElementParent.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/CrashService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/DataReportingService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/FormHistoryStartup.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/InterAppCommService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/marionettecomponent.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/messageWakeupService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsContentPrefService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsCrashMonitor.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsDefaultCLH.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsHandlerService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsIDService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsLoginManager.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsPlacesAutoComplete.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsSearchService.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsUpdateServiceStub.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsUpdateTimerManager.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsUrlClassifierHashCompleter.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsUrlClassifierLib.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsUrlClassifierListManager.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/nsURLFormatter.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/PeerConnection.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/PushServiceLauncher.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/recording-cmdline.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/reftest-cmdline.js
> [System Principal],
> file:///home/njn/moz/miN/co64/dist/bin/components/TelemetryStartup.js
> [System Principal], file:///home/njn/moz/miN/co64/dist/bin/components/Weave.js
> [System Principal],
> inProcessTabChildGlobal?ownedBy=chrome://browser/content/browser.xul
> [2]
> [System Principal],
> inProcessTabChildGlobal?ownedBy=data:application/vnd.mozilla.xul+xml;charset=utf-8,<window%20id='win'/>
> [System Principal], resource://gre/modules/ActivitiesServiceFilter.jsm
> [System Principal], resource://gre/modules/ActivitiesService.jsm
> [System Principal], resource://gre/modules/AddonManager.jsm
> [System Principal], resource://gre/modules/addons/PluginProvider.jsm
> [System Principal], resource://gre/modules/addons/XPIProvider.jsm
> [System Principal], resource://gre/modules/AppDownloadManager.jsm
> [System Principal], resource://gre/modules/AppsUtils.jsm
> [System Principal], resource://gre/modules/AsyncShutdown.jsm
> [System Principal], resource://gre/modules/BackgroundPageThumbs.jsm
> [System Principal], resource://gre/modules/BookmarkJSONUtils.jsm
> [System Principal], resource://gre/modules/BrowserElementParent.jsm
> [System Principal], resource://gre/modules/BrowserElementPromptService.jsm
> [System Principal], resource://gre/modules/BrowserUtils.jsm
> [System Principal], resource://gre/modules/CharsetMenu.jsm
> [System Principal],
> resource://gre/modules/commonjs/sdk/core/heritage.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal],
> resource://gre/modules/commonjs/sdk/core/namespace.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/commonjs/sdk/core/promise.js
> [System Principal],
> resource://gre/modules/commonjs/sdk/platform/xpcom.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal],
> resource://gre/modules/commonjs/sdk/system/events.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/commonjs/sdk/util/array.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/commonjs/sdk/util/object.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/commonjs/sdk/util/uuid.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/commonjs/toolkit/loader.js
> [System Principal], resource://gre/modules/ContentPrefService2.jsm
> [System Principal], resource://gre/modules/ContentPrefStore.jsm
> [System Principal], resource://gre/modules/CrashManager.jsm
> [System Principal], resource://gre/modules/CrashMonitor.jsm
> [System Principal], resource://gre/modules/Credentials.jsm
> [System Principal], resource://gre/modules/ctypes.jsm
> [System Principal], resource://gre/modules/debug.js
> [System Principal], resource://gre/modules/DeferredTask.jsm
> [System Principal], resource://gre/modules/Deprecated.jsm
> [System Principal], resource://gre/modules/devtools/Console.jsm
> [System Principal], resource://gre/modules/devtools/dbg-client.jsm
> [System Principal], resource://gre/modules/devtools/DevToolsUtils.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/devtools/DevToolsUtils.jsm
> [System Principal], resource://gre/modules/devtools/event-emitter.js
> [System Principal], resource://gre/modules/devtools/event-emitter.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource://gre/modules/devtools/Loader.jsm
> [System Principal], resource://gre/modules/devtools/Require.jsm
> [System Principal], resource://gre/modules/devtools/SourceMap.jsm
> [System Principal], resource://gre/modules/DOMIdentity.jsm
> [System Principal], resource://gre/modules/DownloadCore.jsm
> [System Principal], resource://gre/modules/DownloadIntegration.jsm
> [System Principal], resource://gre/modules/DownloadList.jsm
> [System Principal], resource://gre/modules/Downloads.jsm
> [System Principal], resource://gre/modules/DownloadStore.jsm
> [System Principal], resource://gre/modules/FileUtils.jsm
> [System Principal], resource://gre/modules/FreeSpaceWatcher.jsm
> [System Principal], resource://gre/modules/FxAccountsClient.jsm
> [System Principal], resource://gre/modules/FxAccountsCommon.js
> [System Principal], resource://gre/modules/FxAccounts.jsm
> [System Principal], resource://gre/modules/FxAccountsUtils.jsm
> [System Principal], resource://gre/modules/IndexedDBHelper.jsm
> [System Principal], resource://gre/modules/InlineSpellChecker.jsm
> [System Principal], resource://gre/modules/LightweightThemeConsumer.jsm
> [System Principal], resource://gre/modules/LightweightThemeManager.jsm
> [System Principal], resource://gre/modules/Log.jsm
> [System Principal], resource://gre/modules/NativeApp.jsm
> [System Principal], resource://gre/modules/NetUtil.jsm
> [System Principal], resource://gre/modules/NewTabUtils.jsm
> [System Principal], resource://gre/modules/NotificationDB.jsm
> [System Principal], resource://gre/modules/OfflineCacheInstaller.jsm
> [System Principal], resource://gre/modules/osfile.jsm
> [System Principal], resource://gre/modules/osfile/osfile_async_front.jsm
> [System Principal], resource://gre/modules/osfile/osfile_native.jsm
> [System Principal], resource://gre/modules/osfile/osfile_shared_allthreads.jsm
> [System Principal], resource://gre/modules/osfile/osfile_unix_allthreads.jsm
> [System Principal], resource://gre/modules/osfile/ospath.jsm
> [System Principal], resource://gre/modules/osfile/ospath_unix.jsm
> [System Principal], resource://gre/modules/osfile/_PromiseWorker.jsm
> [System Principal], resource://gre/modules/PageThumbs.jsm
> [System Principal], resource://gre/modules/PermissionSettings.jsm
> [System Principal], resource://gre/modules/PermissionsInstaller.jsm
> [System Principal], resource://gre/modules/PermissionsTable.jsm
> [System Principal], resource://gre/modules/PlacesBackups.jsm
> [System Principal], resource://gre/modules/PlacesUtils.jsm
> [System Principal], resource://gre/modules/PluralForm.jsm
> [System Principal], resource://gre/modules/PopupNotifications.jsm
> [System Principal], resource://gre/modules/Preferences.jsm
> [System Principal], resource://gre/modules/PrivateBrowsingUtils.jsm
> [System Principal], resource://gre/modules/Promise.jsm
> [System Principal], resource://gre/modules/reflect.jsm
> [System Principal], resource://gre/modules/SafeBrowsing.jsm
> [System Principal], resource://gre/modules/ScrollPosition.jsm
> [System Principal], resource://gre/modules/Services.jsm
> [System Principal], resource://gre/modules/SocialService.jsm
> [System Principal], resource://gre/modules/SystemMessagePermissionsChecker.jsm
> [System Principal], resource://gre/modules/Task.jsm
> [System Principal], resource://gre/modules/TelemetryPing.jsm
> [System Principal], resource://gre/modules/TelemetryStopwatch.jsm
> [System Principal], resource://gre/modules/TelemetryTimestamps.jsm
> [System Principal], resource://gre/modules/ThirdPartyCookieProbe.jsm
> [System Principal], resource://gre/modules/Timer.jsm
> [System Principal], resource://gre/modules/UITelemetry.jsm
> [System Principal], resource://gre/modules/UpdateChannel.jsm
> [System Principal], resource://gre/modules/WebappOSUtils.jsm
> [System Principal], resource://gre/modules/Webapps.jsm
> [System Principal], resource://gre/modules/WindowDraggingUtils.jsm
> [System Principal], resource://gre/modules/WindowsPrefSync.jsm
> [System Principal], resource://gre/modules/XPCOMUtils.jsm
> [System Principal], resource:///modules/AboutHome.jsm
> [System Principal], resource:///modules/BrowserNewTabPreloader.jsm
> [System Principal], resource:///modules/BrowserUITelemetry.jsm
> [System Principal], resource:///modules/ContentClick.jsm
> [System Principal], resource:///modules/ContentLinkHandler.jsm
> [System Principal], resource:///modules/CustomizableUI.jsm
> [System Principal], resource:///modules/CustomizableWidgets.jsm
> [System Principal], resource:///modules/devtools/gDevTools.jsm
> [System Principal], resource:///modules/devtools/main.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource:///modules/devtools/profiler/consts.js
> (from: resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal],
> resource:///modules/devtools/profiler/controller.js (from:
> resource://gre/modules/commonjs/toolkit/loader.js:238)
> [System Principal], resource:///modules/devtools/scratchpad-manager.jsm
> [System Principal], resource:///modules/devtools/ViewHelpers.jsm
> [System Principal], resource:///modules/distribution.js
> [System Principal], resource:///modules/DownloadsCommon.jsm
> [System Principal], resource:///modules/DownloadsTaskbar.jsm
> [System Principal], resource:///modules/experiments/Experiments.jsm
> [System Principal], resource:///modules/NetworkPrioritizer.jsm
> [System Principal], resource:///modules/PanelWideWidgetTracker.jsm
> [System Principal], resource:///modules/PlacesUIUtils.jsm
> [System Principal], resource:///modules/RecentWindow.jsm
> [System Principal], resource:///modules/sessionstore/ContentRestore.jsm
> [System Principal], resource:///modules/sessionstore/FrameTree.jsm
> [System Principal], resource:///modules/sessionstore/GlobalState.jsm
> [System Principal], resource:///modules/sessionstore/PageStyle.jsm
> [System Principal], resource:///modules/sessionstore/PrivacyFilter.jsm
> [System Principal], resource:///modules/sessionstore/SessionCookies.jsm
> [System Principal], resource:///modules/sessionstore/SessionFile.jsm
> [System Principal], resource:///modules/sessionstore/SessionHistory.jsm
> [System Principal], resource:///modules/sessionstore/SessionSaver.jsm
> [System Principal], resource:///modules/sessionstore/SessionStorage.jsm
> [System Principal], resource:///modules/sessionstore/SessionStore.jsm
> [System Principal], resource:///modules/sessionstore/TabAttributes.jsm
> [System Principal], resource:///modules/sessionstore/TabStateCache.jsm
> [System Principal], resource:///modules/sessionstore/TabState.jsm
> [System Principal], resource:///modules/sessionstore/Utils.jsm
> [System Principal], resource:///modules/SignInToWebsite.jsm
> [System Principal], resource:///modules/Social.jsm
> [System Principal], resource:///modules/WebappManager.jsm
> [System Principal], resource:///modules/webrtcUI.jsm
> [System Principal], resource://pdf.js/default_preferences.js
> [System Principal], resource://pdf.js/network.js
> [System Principal], resource://pdf.js/PdfJs.jsm
> [System Principal], resource://pdf.js/PdfRedirector.jsm
> [System Principal], resource://pdf.js/PdfStreamConverter.jsm
> [System Principal], resource://services-common/async.js
> [System Principal], resource://services-common/hawkclient.js
> [System Principal], resource://services-common/hawkrequest.js
> [System Principal], resource://services-common/observers.js
> [System Principal], resource://services-common/rest.js
> [System Principal], resource://services-common/stringbundle.js
> [System Principal], resource://services-common/utils.js
> [System Principal], resource://services-crypto/utils.js
> [System Principal], resource://services-sync/constants.js
> [System Principal], resource://services-sync/util.js
> [System Principal], resource://shumway/ShumwayStreamConverter.jsm
> [System Principal], resource://shumway/ShumwayUtils.jsm
> [System Principal], XPConnect Junk Compartment
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to