Closed
Bug 1477905
Opened 7 years ago
Closed 7 years ago
0.35% installer size (osx-cross) regression on push 1ac6543017416f0899dbac1c785cc2b48637b900 (Mon Jul 23 2018)
Categories
(Core Graveyard :: Web Replay, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: igoldan, Unassigned)
References
Details
(Keywords: regression)
We have detected a build metrics regression from push:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=1ac6543017416f0899dbac1c785cc2b48637b900
As author of one of the patches included in that push, we need your help to address this regression.
Regressions:
>200KBytes installer size osx-cross opt 66,622,203.08 -> 66,858,678.67
You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=14491
On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the jobs in a pushlog format.
To learn more about the regressing test(s), please see: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing/Build_Metrics
Reporter | ||
Updated•7 years ago
|
Product: Testing → Core
Reporter | ||
Comment 1•7 years ago
|
||
The patch is composed of multiple bugs:
bug 1207696
bug 1464903
bug 1465287
bug 1466877
bug 1470795
bug 1465294
bug 1465466
Which one is more related to this installer size increase?
Flags: needinfo?(bhackett1024)
Comment 2•7 years ago
|
||
I think the Web Replay tracking bug, bug 1422587, would be most appropriate. The new code is spread across a number of its dependent bugs.
Flags: needinfo?(bhackett1024)
![]() |
||
Comment 3•7 years ago
|
||
That is a *really* large increase. Is udis86 really that big, or do I just not have a good mental model of how much webreplay code there really is?
Comment 4•7 years ago
|
||
(In reply to Nathan Froyd [:froydnj] from comment #3)
> That is a *really* large increase. Is udis86 really that big, or do I just
> not have a good mental model of how much webreplay code there really is?
The web replay code is 19 thousand lines of code, including blank lines and comments, and is all in toolkit/recordreplay and toolkit/recordreplay/ipc. udis86 is another 10 thousand lines of code, in toolkit/recordreplay/udis86. I think things are pretty compact and we don't rely on templates very heavily (besides the usual Vector<> etc.) so I'm not sure what is causing the increase here.
Outside of toolkit/recordreplay, and ignoring tests, there is 600 odd lines of new code in mfbt/RecordReplay*, 1300 new lines of JS in devtools/server/actors/replay, and a net increase of about 2000 lines of code scattered around the code base. I've pasted diff stats for that stuff below.
Not everything has landed yet, but almost all the new code has.
browser/base/content/browser-menubar.inc | 9
browser/base/content/browser-sets.inc | 12
browser/base/content/browser.js | 29
browser/base/content/tabbrowser.js | 23
browser/locales/en-US/chrome/browser/browser.dtd | 4
devtools/client/framework/devtools-browser.js | 6
devtools/client/locales/en-US/webconsole.properties | 5
devtools/client/shared/test/shared-head.js | 1
devtools/client/webconsole/utils/context-menu.js | 18
devtools/client/webconsole/utils/messages.js | 2
devtools/client/webconsole/webconsole-output-wrapper.js | 7
devtools/server/actors/frame.js | 7
devtools/server/actors/moz.build | 1
devtools/server/actors/object.js | 7
devtools/server/actors/object/previewers.js | 54 -
devtools/server/actors/source.js | 8
devtools/server/actors/targets/browsing-context.js | 10
devtools/server/actors/thread.js | 393 ++++++----
devtools/server/actors/utils/TabSources.js | 27
devtools/server/actors/utils/make-debugger.js | 8
devtools/server/actors/webconsole.js | 108 ++
devtools/shared/builtin-modules.js | 11
devtools/shared/client/thread-client.js | 77 +
dom/base/TabGroup.cpp | 5
dom/base/nsCCUncollectableMarker.cpp | 6
dom/base/nsFrameMessageManager.cpp | 24
dom/base/nsJSEnvironment.cpp | 32
dom/base/nsWrapperCache.cpp | 10
dom/base/nsWrapperCache.h | 25
dom/base/nsWrapperCacheInlines.h | 2
dom/bindings/BindingUtils.h | 31
dom/bindings/nsIScriptError.idl | 6
dom/bindings/nsScriptError.cpp | 15
dom/bindings/nsScriptError.h | 1
dom/clients/manager/ClientManagerService.cpp | 3
dom/html/HTMLMediaElement.cpp | 7
dom/interfaces/base/nsITabParent.idl | 6
dom/ipc/ContentChild.cpp | 31
dom/ipc/ContentChild.h | 3
dom/ipc/ContentParent.cpp | 179 ++++
dom/ipc/ContentParent.h | 44 +
dom/ipc/ContentProcess.cpp | 39
dom/ipc/PContent.ipdl | 11
dom/ipc/ProcessHangMonitor.cpp | 16
dom/ipc/TabChild.cpp | 29
dom/ipc/TabChild.h | 2
dom/ipc/TabParent.cpp | 30
dom/ipc/TabParent.h | 13
dom/media/CubebUtils.cpp | 2
dom/media/webaudio/AudioContext.cpp | 12
dom/plugins/ipc/PluginUtilsOSX.mm | 2
dom/script/ScriptLoader.cpp | 6
dom/workers/RuntimeService.cpp | 22
dom/xbl/nsXBLBinding.cpp | 1
extensions/spellcheck/hunspell/glue/RemoteSpellCheckEngineChild.cpp | 21
gfx/layers/apz/src/APZCTreeManager.cpp | 8
gfx/layers/client/ClientLayerManager.cpp | 8
gfx/layers/ipc/CompositorBridgeParent.cpp | 9
gfx/layers/ipc/CompositorBridgeParent.h | 6
gfx/layers/ipc/CompositorManagerChild.cpp | 2
gfx/layers/ipc/CompositorManagerParent.cpp | 4
gfx/layers/ipc/CompositorVsyncScheduler.cpp | 6
gfx/layers/ipc/LayerTransactionParent.cpp | 11
gfx/layers/ipc/ShadowLayers.cpp | 8
gfx/thebes/gfxPlatform.cpp | 20
gfx/thebes/gfxPlatform.h | 2
hal/sandbox/SandboxHal.cpp | 5
ipc/chromium/src/base/pickle.cc | 8
ipc/chromium/src/base/pickle.h | 2
ipc/chromium/src/chrome/common/ipc_message.cc | 6
ipc/chromium/src/chrome/common/ipc_message.h | 2
ipc/glue/CrashReporterClient.h | 5
ipc/glue/CrossProcessMutex.h | 4
ipc/glue/GeckoChildProcessHost.cpp | 2
ipc/glue/MessageChannel.cpp | 2
ipc/glue/ProtocolUtils.cpp | 16
ipc/glue/ProtocolUtils.h | 19
ipc/ipdl/sync-messages.ini | 2
js/ductwork/debugger/IJSDebugger.idl | 3
js/ductwork/debugger/JSDebugger.cpp | 14
js/public/AllocPolicy.h | 7
js/public/HashTable.h | 4
js/public/Principals.h | 4
js/public/ProfilingStack.h | 21
js/src/builtin/AtomicsObject.cpp | 3
js/src/builtin/AtomicsObject.h | 3
js/src/builtin/Promise.cpp | 34
js/src/ds/LifoAlloc.h | 3
js/src/ds/MemoryProtectionExceptionHandler.cpp | 3
js/src/ds/OrderedHashTable.h | 22
js/src/frontend/BytecodeCompiler.cpp | 8
js/src/frontend/NameCollections.h | 14
js/src/gc/ArenaList.h | 3
js/src/gc/AtomMarking.h | 3
js/src/gc/GC.cpp | 28
js/src/gc/GCParallelTask.h | 3
js/src/gc/GCRuntime.h | 15
js/src/gc/Heap.h | 4
js/src/gc/Marking.cpp | 4
js/src/gc/Memory.cpp | 8
js/src/gc/Nursery.cpp | 10
js/src/gc/Scheduling.h | 9
js/src/gc/Statistics.cpp | 14
js/src/gc/Statistics.h | 3
js/src/gc/Zone.h | 3
js/src/jit/BaselineBailouts.cpp | 24
js/src/jit/BaselineCompiler.cpp | 9
js/src/jit/CodeGenerator.cpp | 4
js/src/jit/IonBuilder.cpp | 26
js/src/jit/JitAllocPolicy.h | 3
js/src/jit/JitRealm.h | 6
js/src/jit/LoopUnroller.cpp | 7
js/src/jit/MIR.h | 12
js/src/jit/MIRGenerator.h | 3
js/src/jit/ProcessExecutableMemory.cpp | 3
js/src/jit/shared/CodeGenerator-shared.cpp | 4
js/src/jsapi.cpp | 4
js/src/jsapi.h | 9
js/src/jsexn.cpp | 18
js/src/jsutil.h | 3
js/src/threading/Mutex.h | 7
js/src/threading/ProtectedData.cpp | 4
js/src/threading/ProtectedData.h | 3
js/src/threading/posix/Thread.cpp | 2
js/src/vm/BytecodeUtil.cpp | 52 +
js/src/vm/BytecodeUtil.h | 5
js/src/vm/Debugger.cpp | 111 ++
js/src/vm/Debugger.h | 1
js/src/vm/ErrorObject-inl.h | 6
js/src/vm/ErrorObject.cpp | 10
js/src/vm/ErrorObject.h | 4
js/src/vm/HelperThreads.cpp | 33
js/src/vm/HelperThreads.h | 2
js/src/vm/Interpreter.cpp | 2
js/src/vm/JSContext.cpp | 2
js/src/vm/JSContext.h | 10
js/src/vm/JSScript-inl.h | 15
js/src/vm/JSScript.cpp | 10
js/src/vm/JSScript.h | 16
js/src/vm/NativeObject.cpp | 3
js/src/vm/Probes-inl.h | 5
js/src/vm/Runtime.cpp | 11
js/src/vm/Runtime.h | 18
js/src/vm/Stack.cpp | 4
js/src/vm/StructuredClone.cpp | 18
js/src/vm/Time.h | 21
js/src/vm/TypeInference.cpp | 4
js/src/wasm/WasmSignalHandlers.cpp | 4
js/xpconnect/idl/xpccomponents.idl | 3
js/xpconnect/loader/mozJSComponentLoader.cpp | 7
js/xpconnect/src/SandboxPrivate.h | 1
js/xpconnect/src/XPCComponents.cpp | 7
js/xpconnect/src/XPCJSContext.cpp | 12
js/xpconnect/src/XPCJSRuntime.cpp | 37
js/xpconnect/src/XPCWrappedNative.cpp | 16
js/xpconnect/src/XPCWrappedNativeProto.cpp | 4
js/xpconnect/src/nsXPConnect.cpp | 9
js/xpconnect/src/xpcpublic.h | 6
layout/ipc/VsyncChild.cpp | 14
layout/style/ImageLoader.cpp | 44 -
media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp | 5
memory/build/mozjemalloc.cpp | 11
memory/mozalloc/mozalloc.h | 3
memory/replace/dmd/DMD.cpp | 3
mfbt/AllocPolicy.h | 12
mfbt/Assertions.cpp | 7
mfbt/Atomics.h | 123 ++-
mfbt/BufferList.h | 28
mfbt/ChaosMode.cpp | 2
mfbt/ChaosMode.h | 4
mfbt/RefCounted.h | 25
mfbt/SegmentedVector.h | 6
mfbt/Vector.h | 12
mfbt/moz.build | 2
mfbt/tests/TestAtomics.cpp | 11
mfbt/tests/TestBufferList.cpp | 3
mfbt/tests/TestSegmentedVector.cpp | 3
modules/libpref/init/all.js | 6
mozglue/misc/Mutex_posix.cpp | 13
mozglue/misc/Mutex_windows.cpp | 2
mozglue/misc/PlatformMutex.h | 6
mozglue/misc/Printf.h | 4
netwerk/ipc/NeckoCommon.h | 2
parser/html/nsHtml5StreamParser.cpp | 15
testing/mochitest/mochitest_options.py | 5
testing/mochitest/runtests.py | 7
toolkit/components/backgroundhangmonitor/BackgroundHangMonitor.cpp | 2
toolkit/components/finalizationwitness/FinalizationWitnessService.cpp | 5
toolkit/components/printingui/ipc/nsPrintingProxy.cpp | 5
toolkit/components/telemetry/Telemetry.cpp | 21
toolkit/components/telemetry/TelemetryHistogram.cpp | 4
toolkit/components/telemetry/TelemetryScalar.cpp | 3
toolkit/content/license.html | 33
toolkit/moz.build | 1
toolkit/xre/nsAppRunner.cpp | 7
toolkit/xre/nsEmbedFunctions.cpp | 23
tools/profiler/core/platform.cpp | 5
tools/profiler/public/GeckoProfiler.h | 6
widget/VsyncDispatcher.cpp | 4
widget/nsBaseWidget.cpp | 3
xpcom/base/CycleCollectedJSContext.cpp | 2
xpcom/base/CycleCollectedJSRuntime.cpp | 50 -
xpcom/base/DebuggerOnGCRunnable.cpp | 6
xpcom/base/DeferredFinalize.cpp | 46 +
xpcom/base/DeferredFinalize.h | 14
xpcom/base/Logging.cpp | 4
xpcom/base/Logging.h | 11
xpcom/base/StaticMutex.h | 55 +
xpcom/base/nsCycleCollector.cpp | 6
xpcom/base/nsDebugImpl.cpp | 3
xpcom/base/nsISupportsImpl.h | 27
xpcom/base/nsTraceRefcnt.cpp | 10
xpcom/components/nsComponentManager.h | 4
xpcom/ds/PLDHashTable.cpp | 20
xpcom/ds/PLDHashTable.h | 25
xpcom/ds/nsAtomTable.cpp | 5
xpcom/ds/nsGkAtomList.h | 2
xpcom/io/nsPipe3.cpp | 9
xpcom/string/nsSubstring.cpp | 16
xpcom/threads/AbstractThread.h | 5
xpcom/threads/DeadlockDetector.h | 1
xpcom/threads/Monitor.h | 5
xpcom/threads/Mutex.h | 44 -
xpcom/threads/ReentrantMonitor.h | 10
xpcom/threads/TimerThread.cpp | 13
xpcom/threads/nsThread.cpp | 13
xpcom/threads/nsThreadManager.h | 4
xpcom/threads/nsThreadUtils.h | 4
228 files changed, 2806 insertions(+), 598 deletions(-)
Comment 5•7 years ago
|
||
(bug 1477691 is another installer size regression from a prior chunk of WebReplay landing.)
See Also: → 1477691
Updated•7 years ago
|
Component: General → Web Replay
Reporter | ||
Comment 6•7 years ago
|
||
:froydnj can you draw some further steps or should we conclude this with a WONTFIX?
Flags: needinfo?(nfroyd)
![]() |
||
Comment 7•7 years ago
|
||
I dunno, maybe some of the atomic recording changes result in a lot of bloat, or something? I don't know what's causing the issue. What does the binary size of the udis86 directory look like on your machine?
Flags: needinfo?(nfroyd) → needinfo?(bhackett1024)
Comment 8•7 years ago
|
||
(In reply to Nathan Froyd [:froydnj] from comment #7)
> I dunno, maybe some of the atomic recording changes result in a lot of
> bloat, or something? I don't know what's causing the issue. What does the
> binary size of the udis86 directory look like on your machine?
ProcessRedirect.o, which contains all of udis86, is 528KB, though I don't know how much of that will be shared with other compilation units.
Flags: needinfo?(bhackett1024)
this bug has sat idle for two months- I get the impression this is a wontfix?
Flags: needinfo?(nfroyd)
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Updated•6 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•