Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-15397] Binary Size increase on main #57711

Open
compnerd opened this issue Oct 26, 2021 · 5 comments
Open

[SR-15397] Binary Size increase on main #57711

compnerd opened this issue Oct 26, 2021 · 5 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior.

Comments

@compnerd
Copy link
Collaborator

Previous ID SR-15397
Radar None
Original Reporter @compnerd
Type Bug
Additional Detail from JIRA
Votes 0
Component/s
Labels Bug
Assignee None
Priority Medium

Watchers: @shahmishal

md5: 3c99f0dba5426432367c2117f0d3249d

Issue Description:

It seems that between 5.5 and main, there is some difference in the builds. The binary size of the installer has jumped from 441 MB to ~500 MB (compressed at highest compression).

@compnerd
Copy link
Collaborator Author

+@shahmishal @etcwilde

@shahmishal
Copy link
Member

Ubuntu 16.04:

  • 5.5 - 570MB

  • main - 569MB

Xcode 13:

  • 5.5 893MB

  • main - 946MB

@compnerd
Copy link
Collaborator Author

                                     5.5     main    delta
windows-devtools-amd64.msi                 9 MB   10 MB +  1 MB
windows-icu-amd64.msi                     13 MB   13 MB    -
windows-runtime-amd64.msi                  5 MB    6 MB +  1 MB
windows-sdk-amd64.msi                     11 MB   12 MB +  1 MB
windows-toolchain-amd64.msi              407 MB  454 MB + 47 MB

devtools image                            39 MB   41 MB +  2 MB
runtime/sdk image                         79 MB   93 MB + 14 MB
toolchain image                         3587 MB 3979 MB +392 MB

toolchain usr/bin                       3448 MB 3813 MB +365 MB
toolchain usr/lib                        138 MB  166 MB + 28 MB

usr/bin/LTO.dll                           46 MB   51 MB +  5 MB
usr/bin/_InternalSwiftScan.dll           100 MB  109 MB +  9 MB
usr/bin/_InternalSwiftSyntaxParser.dll    19 MB   20 MB +  1 MB
usr/bin/addr2line.exe                      6 MB    6 MB    -
usr/bin/ar.exe                            12 MB   12 MB    -
usr/bin/c++filt.exe                      425 KB  441 KB + 16 KB
usr/bin/clang++.exe                       83 MB   89 MB +  6 MB
usr/bin/clang-cl.exe                      83 MB   89 MB +  6 MB
usr/bin/clang-cpp.exe                     83 MB   89 MB +  6 MB
usr/bin/clang-format.exe                   2 MB    2 MB    -
usr/bin/clang-tidy.exe                    41 MB   45 MB +  4 MB
usr/bin/clang.exe                         83 MB   89 MB +  6 MB
usr/bin/clangd.exe                        33 MB   37 MB +  4 MB
usr/bin/complete-test.exe                285 KB  242 KB - 43 KB
usr/bin/dispatch.dll                     227 KB  227 KB    -
usr/bin/dsymutil.exe                      35 MB   36 MB +  1 MB
usr/bin/dwp.exe                           34 MB   35 MB +  1 MB
usr/bin/git-clang-format                  21 KB   22 KB +  1 KB
usr/bin/ld.lld.exe                        52 MB   54 MB +  2 MB
usr/bin/ld64.lld.darwinnew.exe            52 MB   54 MB +  2 MB
usr/bin/ld64.lld.darwinold.exe                    54 MB + 54 MB
usr/bin/ld64.lld.exe                      52 MB   54 MB +  2 MB
usr/bin/libIndexStore.dll                401 KB  361 KB - 40 KB
usr/bin/libclang.dll                      60 MB   83 MB + 23 MB
usr/bin/liblldb.dll                      117 MB  123 MB +  6 MB
usr/bin/lld-link.exe                      52 MB   54 MB +  2 MB
usr/bin/lld.exe                           52 MB   54 MB +  2 MB
usr/bin/lldb-argdumper.exe               240 KB  199 KB - 41 KB
usr/bin/lldb-moduleimport-test.exe       100 MB  106 MB +  6 MB
usr/bin/lldb-server.exe                   75 MB  109 MB + 34 MB
usr/bin/lldb-vscode.exe                  435 KB  479 KB + 44 KB
usr/bin/lldb.exe                         299 KB  262 KB - 37 KB
usr/bin/llvm-ar.exe                       12 MB   12 MB    -
usr/bin/llvm-cov.exe                       5 MB    5 MB    -
usr/bin/llvm-cvtres.exe                    4 MB  379 KB -  4 MB
usr/bin/llvm-cxxfilt.exe                 425 KB  441 KB + 16 KB
usr/bin/llvm-dlltool.exe                  12 MB   12 MB    -
usr/bin/llvm-dwarfdump.exe                10 MB   11 MB +  1 MB
usr/bin/llvm-dwp.exe                      34 MB   35 MB +  1 MB
usr/bin/llvm-lib.exe                      12 MB   12 MB    -
usr/bin/llvm-lipo.exe                      4 MB    5 MB    -
usr/bin/llvm-mt.exe                      286 KB  248 KB - 38 KB
usr/bin/llvm-nm.exe                       12 MB   13 MB +  1 MB
usr/bin/llvm-objcopy.exe                   5 MB    5 MB    -
usr/bin/llvm-objdump.exe                  13 MB   14 MB +  1 MB
usr/bin/llvm-pdbutil.exe                   6 MB    6 MB    -
usr/bin/llvm-profdata.exe                  2 MB    3 MB +  1 MB
usr/bin/llvm-ranlib.exe                   12 MB   12 MB    -
usr/bin/llvm-rc.exe                      429 KB  612 KB +200 KB
usr/bin/llvm-readelf.exe                   7 MB    7 MB    -
usr/bin/llvm-readobj.exe                   7 MB    7 MB    -
usr/bin/llvm-size.exe                      4 MB    4 MB    -
usr/bin/llvm-strings.exe                 340 KB  348 KB +  8 KB
usr/bin/llvm-strip.exe                     5 MB    5 MB    -
usr/bin/llvm-symbolizer.exe                6 MB    6 MB    -
usr/bin/llvm-undname.exe                 388 KB  407 KB + 29 KB
usr/bin/nm.exe                            12 MB   13 MB +  1 MB
usr/bin/objcopy.exe                        5 MB    5 MB    -
usr/bin/objdump.exe                       13 MB   14 MB    -
usr/bin/ranlib.exe                        12 MB   12 MB    -
usr/bin/readelf.exe                        7 MB    7 MB    -
usr/bin/repl_swift.exe                    11 KB   11 KB    -
usr/bin/sil-func-extractor.exe           100 MB  106 MB +  6 MB
usr/bin/sil-llvm-gen.exe                 100 MB  106 MB +  6 MB
usr/bin/sil-nm.exe                       100 MB  106 MB +  6 MB
usr/bin/sil-opt.exe                      100 MB  106 MB +  6 MB
usr/bin/sil-passpipeline-dumper.exe       37 MB   39 MB +  2 MB
usr/bin/size.exe                           4 MB    4 MB    -
usr/bin/sourcekitd-test.exe              479 KB  449 KB - 30 KB
usr/bin/sourcekitdInProc.dll              73 MB  106 MB + 32 MB
usr/bin/strings.exe                      340 KB  348 KB +  8 KB
usr/bin/swift-api-digester.exe           130 MB  109 MB - 21 MB
usr/bin/swift-api-dump.py                 12 KB   12 KB    -
usr/bin/swift-api-extract.exe            103 MB  109 MB +  6 MB
usr/bin/swift-ast-script.exe             102 MB  108 MB +  6 MB
usr/bin/swift-autolink-extract.exe       103 MB  109 MB +  6 MB
usr/bin/swift-def-to-yaml-converter.exe  701 KB  728 KB + 27 KB
usr/bin/swift-demangle-yamldump.exe      515 KB  533 KB + 18 KB
usr/bin/swift-demangle.exe               665 KB  676 KB + 11 KB
usr/bin/swift-dependency-tool.exe         53 MB   56 MB +  3 MB
usr/bin/swift-frontend.exe               103 MB  109 MB +  6 MB
usr/bin/swift-ide-test.exe               102 MB  108 MB +  6 MB
usr/bin/swift-indent.exe                 103 MB  109 MB +  6 MB
usr/bin/swift-llvm-opt.exe                63 MB   66 MB +  3 MB
usr/bin/swift-refactor.exe               100 MB  106 MB +  6 MB
usr/bin/swift-reflection-dump.exe          5 MB    5 MB    -
usr/bin/swift-remoteast-test.exe         102 MB  108 MB +  6 MB
usr/bin/swift-serialize-diagnostics.exe  748 KB  774 KB + 26 KB
usr/bin/swift-symbolgraph-extract.exe    103 MB  109 MB +  6 MB
usr/bin/swift-syntax-parser-test.exe     367 KB  381 KB + 17 KB
usr/bin/swift-syntax-test.exe             70 MB  104 MB + 34 MB
usr/bin/swift.exe                        103 MB  109 MB +  6 MB
usr/bin/swiftDemangle.dll                179 KB  181 KB +  2 KB
usr/bin/swiftRemoteMirror.dll            513 KB  518 KB +  6 KB
usr/bin/swiftc.exe                       103 MB  109 MB +  6 MB
usr/bin/wasm-ld.exe                       52 MB   54 MB +  2 MB
usr/lib/BlocksRuntime.lib                  6 KB    6 KB    -
usr/lib/LTO.lib                           23 KB   12 KB    -
usr/lib/clang                             10 MB   21 MB + 11 MB
usr/lib/dispatch.lib                      46 KB   46 KB    -
usr/lib/libIndexStore.lib                 22 KB   22 KB    -
usr/lib/libclang.lib                     124 KB  125 KB +  1 KB
usr/lib/liblldb.lib                      906 KB  906 KB    -
usr/lib/site-packages                    118 MB  124 MB +  6 MB
usr/lib/sourcekitdInProc.lib              22 KB   22 KB    -
usr/lib/swift                             10 MB   21 MB + 11 MB
usr/lib/swiftDemangle.lib                  4 KB    4 KB    -

@compnerd
Copy link
Collaborator Author

Back of the envelope math indicates ~11% toolchain artifact size increase, ~18% runtime/sdk size increase, ~5% devtools size increase. Part of this is the RISCV backend work that is going on upstream (a 10 MB header is ridiculous). I'll look into the header, but that won't make too big of a dent in the overall increase here I'm afraid (its very repetitive text, so it will compress really well).

@shahmishal
Copy link
Member

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior.
Projects
None yet
Development

No branches or pull requests

2 participants