Hi mobile-firefox-dev,
I'm aware that mfinkle forwarded a message in this thread already, but I
was more interested in the following piece. If somebody could do what
njn did, but for Fennec's startup cache, I would be interested in that data.
Wild guess: we're shipping a bunch of pre-compiled Desktop-only code in
the Fennec startup cache. But I'd love to be proven wrong!
Nick
-------- Original Message --------
Subject: Re: Too many system compartments at start-up
Date: Tue, 25 Mar 2014 09:34:33 -0400
From: Nicholas Nethercote <[email protected]>
To: dev-platform <[email protected]>
On Fri, Mar 21, 2014 at 5:44 PM, Nicholas Nethercote
<[email protected]> 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
[email protected]
https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
mobile-firefox-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/mobile-firefox-dev