3 ms·
Text _segment_ size. That's executable instructions; presumably it makes a bit more sense that Google would have a binary with 300MB worth of instructions layin
by lvh 7y ago
Text _segment_ size. That's executable instructions; presumably it makes a bit more sense that Google would have a binary with 300MB worth of instructions laying around.
- saagarjha 7y agoYes, I get that; I am curious what goes into a binary with 300 MB of code in it.
- Joky 7y agoGoogle has very large applications, but also they are using static linking: imagine that you statically link all the possible dependencies in a single binary for each application. 300MB is not considered a large binary at Google actually, I don't know what is public but you may look at Table 2 in this publication for instance: https://www.researchgate.net/publication/314105281_ThinLTO_Scalable_and_incremental_LTO https://www.researchgate.net/publication/314105281_ThinLTO_S... I repro here some data, there is a bit more in the paper: Clang 1.9k Files, 217MB (-g0), 3554MB (-g) Chromium 17.8k Files 706MB (-g0), 7544MB (-g) Ad Delivery 13.8k Files 1073MB (-g0), 7469MB (-g) (this is the number of object file that are participating in the link).
- saagarjha 7y ago> they are using static linking Ah, that would probably be it.
- mwcampbell 7y agoIs Google's rationale for using static linking at this massive scale published anywhere?
- jlokier 7y agoI don't know Google's rationale, but static linked libraries usually run a little faster than dynamic linked ones.