On Fri, Mar 21, 2014 at 5:44 PM, Nicholas Nethercote <n.netherc...@gmail.com> wrote: > > I should clarify: that's the memory consumption that's identified as > belonging to the compartment, but that's not the whole picture. Some > compartment data gets reported at the level of the runtime, including > 'script-sources' and 'script-data'. Our increase for these over the > past year is 1.5 MiB (see > https://bugzilla.mozilla.org/show_bug.cgi?id=986323#c1). That's purely > due to loading more code, and is unrelated to compartment overhead. > Lazy loading will help there.
Another way in which extra JS code affects memory usage is the start-up cache, which in a new-ish profile on my Mac is 7.5 MiB. I've included a list below showing all the entries in the start-up cache and how much space they take. (All the 'jsloader' ones are XDR encoded bytecode, which is why they're a lot bigger than the original source code.) If anyone can identify entries that could be lazily loaded, please speak up or file bugs. Nick 782336, xulcache/resource/app/chrome/browser/content/browser/browser.js 315392, xblcache/resource/app/chrome/browser/content/browser/tabbrowser.xml 274432, jsloader/resource/gre/modules/addons/XPIProvider.jsm 196608, jsloader/resource/gre/components/nsSearchService.js 188416, jsloader/resource/gre/modules/Webapps.jsm 155648, xblcache/resource/app/chrome/browser/content/browser/urlbarBindings.xml 155648, jsloader/resource/app/modules/CustomizableUI.jsm 139264, jsloader/resource/app/modules/sessionstore/SessionStore.jsm 135168, jsloader/resource/gre/modules/Metrics.jsm 131072, jsloader/resource/gre/modules/PlacesUtils.jsm 118784, jsloader/resource/gre/modules/AddonManager.jsm 114688, xblcache/resource/gre/chrome/toolkit/content/global/bindings/autocomplete.xml 98304, jsloader/resource/app/components/nsBrowserGlue.js 94208, jsloader/resource/app/modules/experiments/Experiments.jsm 90112, xulcache/resource/app/chrome/browser/content/browser/places/browserPlacesViews.js 90112, xblcache/resource/gre/chrome/toolkit/content/global/bindings/tree.xml 86016, xulcache/resource/app/chrome/browser/content/browser/nsContextMenu.js 81920, jsloader/resource/gre/modules/devtools/dbg-client.jsm 73728, xblcache/resource/gre/chrome/toolkit/content/global/bindings/browser.xml 73728, jsloader/resource/gre/modules/SocialService.jsm 73728, jsloader/resource/gre/components/PeerConnection.js 73728, jsloader/resource/gre/components/DataReportingService.js 69632, xulcache/resource/app/chrome/browser/content/browser/places/treeView.js 69632, xulcache/resource/app/chrome/browser/content/browser/places/controller.js 69632, xblcache/resource/gre/chrome/toolkit/content/global/bindings/listbox.xml 61440, xulcache/resource/app/chrome/browser/content/browser/downloads/downloads.js 61440, xblcache/resource/gre/chrome/toolkit/content/global/bindings/textbox.xml 61440, jsloader/resource/gre/components/nsPlacesAutoComplete.js 61440, jsloader/resource/gre/components/nsContentPrefService.js 57344, xblcache/resource/app/chrome/browser/content/browser/socialchat.xml 57344, xblcache/resource/app/chrome/browser/content/browser/search/search.xml 57344, jsloader/resource/app/modules/PlacesUIUtils.jsm 57344, jsloader/resource/app/modules/DownloadsCommon.jsm 57344, jsloader/resource/app/modules/CustomizableWidgets.jsm 57344, jsloader/resource/app/chrome/shumway/content/ShumwayStreamConverter.jsm 53248, xblcache/resource/gre/chrome/toolkit/content/global/bindings/scrollbox.xml 53248, jsloader/resource/gre/modules/devtools/SourceMap.jsm 53248, jsloader/resource/gre/modules/TelemetryPing.jsm 53248, jsloader/resource/gre/components/nsLivemarkService.js 53248, jsloader/resource/app/modules/devtools/ViewHelpers.jsm 49152, xulcache/resource/app/chrome/browser/content/browser/places/editBookmarkOverlay.js 49152, xblcache/resource/gre/chrome/toolkit/content/global/bindings/tabbox.xml 49152, jsloader/resource/gre/modules/osfile/osfile_async_front.jsm 49152, jsloader/resource/gre/components/nsHandlerService.js 49152, jsloader/resource/app/chrome/pdfjs/content/PdfStreamConverter.jsm 45056, xulcache/resource/gre/chrome/toolkit/content/global/contentAreaUtils.js 45056, xblcache/resource/gre/chrome/toolkit/content/global/bindings/popup.xml 45056, xblcache/resource/app/chrome/browser/content/browser/customizableui/toolbar.xml 45056, jsloader/resource/gre/modules/LightweightThemeManager.jsm 45056, jsloader/resource/gre/modules/ContentPrefService2.jsm 45056, jsloader/resource/gre/modules/LightweightThemeManager.jsm 45056, jsloader/resource/gre/modules/ContentPrefService2.jsm 45056, jsloader/resource/gre/modules/BrowserElementParent.jsm 40960, xblcache/resource/app/chrome/browser/content/browser/places/menu.xml 40960, jsloader/resource/gre/modules/commonjs/toolkit/loader.js 40960, jsloader/resource/gre/modules/PopupNotifications.jsm 40960, jsloader/resource/gre/modules/FxAccounts.jsm 40960, jsloader/resource/gre/modules/CrashManager.jsm 40960, jsloader/resource/app/components/WebContentConverter.js 36864, xblcache/resource/gre/chrome/toolkit/content/global/bindings/toolbar.xml 36864, xblcache/resource/gre/chrome/toolkit/content/global/bindings/richlistbox.xml 36864, xblcache/resource/gre/chrome/toolkit/content/global/bindings/notification.xml 36864, jsloader/resource/gre/modules/osfile/osfile_shared_allthreads.jsm 36864, jsloader/resource/gre/modules/PageThumbs.jsm 36864, jsloader/resource/gre/modules/NativeApp.jsm 36864, jsloader/resource/gre/modules/BookmarkJSONUtils.jsm 36864, jsloader/resource/app/modules/devtools/gDevTools.jsm 36864, jsloader/resource/app/modules/Social.jsm 32768, xblcache/resource/app/chrome/browser/content/browser/customizableui/panelUI.xml 32768, jsloader/resource/gre/modules/services-sync/util.js 32768, jsloader/resource/gre/modules/Sqlite.jsm 32768, jsloader/resource/gre/modules/PlacesBackups.jsm 32768, jsloader/resource/gre/modules/NewTabUtils.jsm 32768, jsloader/resource/gre/modules/BrowserElementPromptService.jsm 32768, jsloader/resource/gre/modules/AppsUtils.jsm 32768, jsloader/resource/gre/components/nsUrlClassifierLib.js 32768, jsloader/resource/gre/components/InterAppCommService.js 32768, jsloader/resource/app/modules/BrowserUITelemetry.jsm 32768, jsloader/resource/app/components/nsBrowserContentHandler.js 28672, xulcache/resource/app/chrome/browser/content/browser/utilityOverlay.js 28672, xblcache/resource/gre/chrome/toolkit/content/global/bindings/button.xml 28672, jssubloader/185/resource/app/modules/devtools/main.js 28672, jssubloader/185/resource/app/chrome/browser/content/browser/sanitize.js 28672, jsloader/resource/gre/modules/addons/PluginProvider.jsm 28672, jsloader/resource/gre/modules/Log.jsm 28672, jsloader/resource/gre/components/nsLoginManager.js 24576, xulcache/resource/app/chrome/browser/content/browser/customizableui/panelUI.js 24576, xblcache/resource/gre/chrome/toolkit/content/global/bindings/text.xml 24576, xblcache/resource/gre/chrome/toolkit/content/global/bindings/general.xml 24576, jssubloader/185/resource/app/modules/devtools/profiler/controller.js 24576, jsloader/resource/gre/modules/services-common/utils.js 24576, jsloader/resource/gre/modules/services-common/rest.js 24576, jsloader/resource/gre/modules/DOMIdentity.jsm 24576, jsloader/resource/app/modules/webrtcUI.jsm 24576, jsloader/resource/app/modules/BrowserNewTabPreloader.jsm 20480, xulcache/resource/gre/chrome/toolkit/content/global/viewSourceUtils.js 20480, xulcache/resource/app/chrome/browser/content/browser/downloads/indicator.js 20480, xblcache/resource/gre/chrome/toolkit/content/global/bindings/menu.xml 20480, jssubloader/185/resource/gre/modules/Promise-backend.js 20480, jsloader/resource/gre/modules/services-crypto/utils.js 20480, jsloader/resource/gre/modules/devtools/Loader.jsm 20480, jsloader/resource/gre/modules/services-crypto/utils.js 20480, jsloader/resource/gre/modules/devtools/Loader.jsm 20480, jsloader/resource/gre/modules/devtools/Console.jsm 20480, jsloader/resource/gre/modules/InlineSpellChecker.jsm 20480, jsloader/resource/gre/modules/ActivitiesService.jsm 20480, jsloader/resource/gre/components/nsUrlClassifierListManager.js 20480, jsloader/resource/gre/components/nsUrlClassifierHashCompleter.js 20480, jsloader/resource/app/modules/sessionstore/ContentRestore.jsm 20480, jsloader/resource/app/modules/distribution.js 16384, xulcache/resource/gre/chrome/toolkit/content/global/printUtils.js 16384, jssubloader/185/resource/gre/modules/devtools/server/transport.js 16384, jssubloader/185/resource/gre/modules/commonjs/sdk/platform/xpcom.js 16384, jsloader/resource/gre/modules/Preferences.jsm 16384, jsloader/resource/gre/modules/OfflineCacheInstaller.jsm 16384, jsloader/resource/gre/modules/NotificationDB.jsm 16384, jsloader/resource/gre/modules/FxAccountsClient.jsm 16384, jsloader/resource/gre/modules/CharsetMenu.jsm 16384, jsloader/resource/gre/modules/BackgroundPageThumbs.jsm 16384, jsloader/resource/gre/modules/AsyncShutdown.jsm 16384, jsloader/resource/gre/components/nsUpdateTimerManager.js 16384, jsloader/resource/app/modules/sessionstore/SessionHistory.jsm 16384, jsloader/resource/app/modules/sessionstore/SessionFile.jsm 16384, jsloader/resource/app/modules/WebappManager.jsm 16384, jsloader/resource/app/components/nsSessionStartup.js 16384, jsloader/resource/app/chrome/pdfjs/content/PdfJs.jsm 12288, jssubloader/185/resource/gre/modules/devtools/event-emitter.js 12288, jssubloader/185/resource/gre/modules/devtools/DevToolsUtils.js 12288, jssubloader/185/resource/gre/modules/commonjs/sdk/core/heritage.js 12288, jsloader/resource/gre/modules/services-sync/constants.js 12288, jsloader/resource/gre/modules/osfile/osfile_unix_allthreads.jsm 12288, jsloader/resource/gre/modules/commonjs/sdk/core/promise.js 12288, jsloader/resource/gre/modules/XPCOMUtils.jsm 12288, jsloader/resource/gre/modules/ThirdPartyCookieProbe.jsm 12288, jsloader/resource/gre/modules/SystemMessagePermissionsChecker.jsm 12288, jsloader/resource/gre/modules/Services.jsm 12288, jsloader/resource/gre/modules/SafeBrowsing.jsm 12288, jsloader/resource/gre/modules/PluralForm.jsm 12288, jsloader/resource/gre/modules/PermissionsTable.jsm 12288, jsloader/resource/gre/modules/PermissionSettings.jsm 12288, jsloader/resource/gre/modules/NetUtil.jsm 12288, jsloader/resource/gre/modules/LightweightThemeConsumer.jsm 12288, jsloader/resource/gre/modules/FxAccountsCommon.js 12288, jsloader/resource/gre/modules/FormData.jsm 12288, jsloader/resource/gre/components/nsURLFormatter.js 12288, jsloader/resource/gre/components/marionettecomponent.js 12288, jsloader/resource/gre/components/addonManager.js 12288, jsloader/resource/app/modules/sessionstore/TabState.jsm 12288, jsloader/resource/app/modules/sessionstore/SessionSaver.jsm 12288, jsloader/resource/app/modules/PanelWideWidgetTracker.jsm 12288, jsloader/resource/app/modules/NetworkPrioritizer.jsm 12288, jsloader/resource/app/modules/AboutHome.jsm 12288, jsloader/resource/app/modules/NetworkPrioritizer.jsm 12288, jsloader/resource/app/modules/AboutHome.jsm 12288, jsloader/resource/app/chrome/pdfjs/content/network.js 8192, xulcache/resource/gre/chrome/toolkit/content/global/viewZoomOverlay.js 8192, xulcache/resource/gre/chrome/toolkit/content/global/globalOverlay.js 8192, xblcache/resource/gre/chrome/toolkit/content/global/bindings/toolbarbutton.xml 8192, xblcache/resource/gre/chrome/toolkit/content/global/bindings/stringbundle.xml 8192, xblcache/resource/app/chrome/browser/content/browser/downloads/download.xml 8192, jssubloader/185/resource/gre/modules/commonjs/sdk/util/object.js 8192, jssubloader/185/resource/gre/modules/commonjs/sdk/util/array.js 8192, jssubloader/185/resource/gre/modules/commonjs/sdk/system/events.js 8192, jsloader/resource/gre/modules/services-common/stringbundle.js 8192, jsloader/resource/gre/modules/services-common/observers.js 8192, jsloader/resource/gre/modules/services-common/hawkrequest.js 8192, jsloader/resource/gre/modules/services-common/hawkclient.js 8192, jsloader/resource/gre/modules/services-common/async.js 8192, jsloader/resource/gre/modules/osfile/ospath_unix.jsm 8192, jsloader/resource/gre/modules/osfile/_PromiseWorker.jsm 8192, jsloader/resource/gre/modules/devtools/event-emitter.js 8192, jsloader/resource/gre/modules/devtools/Require.jsm 8192, jsloader/resource/gre/modules/XPathGenerator.jsm 8192, jsloader/resource/gre/modules/WindowDraggingUtils.jsm 8192, jsloader/resource/gre/modules/WebappOSUtils.jsm 8192, jsloader/resource/gre/modules/UITelemetry.jsm 8192, jsloader/resource/gre/modules/Task.jsm 8192, jsloader/resource/gre/modules/PermissionsInstaller.jsm 8192, jsloader/resource/gre/modules/IndexedDBHelper.jsm 8192, jsloader/resource/gre/modules/FreeSpaceWatcher.jsm 8192, jsloader/resource/gre/modules/FileUtils.jsm 8192, jsloader/resource/gre/modules/DeferredTask.jsm 8192, jsloader/resource/gre/modules/Credentials.jsm 8192, jsloader/resource/gre/modules/CrashMonitor.jsm 8192, jsloader/resource/gre/modules/ContentPrefStore.jsm 8192, jsloader/resource/gre/components/reftest-cmdline.js 8192, jsloader/resource/gre/components/nsDefaultCLH.js 8192, jsloader/resource/gre/components/messageWakeupService.js 8192, jsloader/resource/gre/components/Weave.js 8192, jsloader/resource/gre/components/PageThumbsProtocol.js 8192, jsloader/resource/gre/components/FormHistoryStartup.js 8192, jsloader/resource/gre/components/BrowserElementParent.js 8192, jsloader/resource/app/modules/sessionstore/SessionStorage.jsm 8192, jsloader/resource/app/modules/sessionstore/PageStyle.jsm 8192, jsloader/resource/app/modules/sessionstore/FrameTree.jsm 8192, jsloader/resource/app/modules/ContentLinkHandler.jsm 8192, jsloader/resource/app/components/devtools-clhandler.js 8192, jsloader/resource/app/chrome/shumway/content/ShumwayUtils.jsm 8192, jsloader/resource/app/chrome/pdfjs/content/PdfRedirector.jsm 4096, xulcache/resource/gre/chrome/toolkit/content/global/macWindowMenu.js 4096, xblcache/resource/gre/chrome/toolkit/content/global/platformHTMLBindings.xml 4096, xblcache/resource/gre/chrome/toolkit/content/global/bindings/scrollbar.xml 4096, jssubloader/185/resource/gre/modules/commonjs/sdk/core/namespace.js 4096, jsloader/resource/gre/modules/osfile/osfile_native.jsm 4096, jsloader/resource/gre/modules/TelemetryStopwatch.jsm 4096, jsloader/resource/gre/modules/ScrollPosition.jsm 4096, jsloader/resource/gre/modules/PrivateBrowsingUtils.jsm 4096, jsloader/resource/gre/modules/Deprecated.jsm 4096, jsloader/resource/gre/modules/BrowserUtils.jsm 4096, jsloader/resource/gre/modules/AppDownloadManager.jsm 4096, jsloader/resource/gre/modules/ActivitiesServiceFilter.jsm 4096, jsloader/resource/gre/components/recording-cmdline.js 4096, jsloader/resource/gre/components/nsUpdateServiceStub.js 4096, jsloader/resource/gre/components/PushServiceLauncher.js 4096, jsloader/resource/app/modules/sessionstore/GlobalState.jsm 4096, jsloader/resource/app/modules/sessionstore/DocShellCapabilities.jsm 4096, jsloader/resource/app/modules/ContentClick.jsm 4096, jsloader/resource/app/components/ExperimentsService.js 4096, jsloader/resource/app/components/DownloadsStartup.js 2048, xulcache/resource/gre/chrome/toolkit/content/global/editMenuOverlay.js 2048, xblcache/resource/gre/chrome/toolkit/content/global/bindings/splitter.xml 2048, jssubloader/185/resource/gre/modules/commonjs/sdk/util/uuid.js 2048, jssubloader/185/resource/app/modules/devtools/profiler/consts.js 2048, jsloader/resource/gre/modules/osfile/ospath.jsm 2048, jsloader/resource/gre/modules/osfile.jsm 2048, jsloader/resource/gre/modules/debug.js 2048, jsloader/resource/gre/modules/Timer.jsm 2048, jsloader/resource/gre/modules/TelemetryTimestamps.jsm 2048, jsloader/resource/gre/modules/FxAccountsUtils.jsm 2048, jsloader/resource/gre/components/nsIDService.js 2048, jsloader/resource/gre/components/nsCrashMonitor.js 2048, jsloader/resource/gre/components/TelemetryStartup.js 2048, jsloader/resource/gre/components/CrashService.js 2048, jsloader/resource/app/modules/sessionstore/Utils.jsm 2048, jsloader/resource/app/modules/sessionstore/TabStateCache.jsm 2048, jsloader/resource/app/modules/RecentWindow.jsm 2048, jsloader/resource/app/components/nsSetDefaultBrowser.js 1024, jsloader/resource/gre/modules/devtools/DevToolsUtils.jsm 1024, jsloader/resource/gre/modules/Promise.jsm 496, xulcache/resource/gre/chrome/toolkit/content/global/inlineSpellCheckUI.js 480, jsloader/resource/app/chrome/pdfjs/content/default_preferences.js 432, jsloader/resource/gre/modules/reflect.jsm 416, jsloader/resource/gre/modules/ctypes.jsm 208, jsloader/resource/gre/modules/WindowsPrefSync.jsm 96, nsXULPrototypeCache.startupCache _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform