Closed Bug 673262 Opened 13 years ago Closed 13 years ago

Determine startup impact of gold linking on Android

Categories

(Firefox Build System :: General, defect)

ARM
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: stechz, Assigned: glandium)

References

Details

(Keywords: mobile, perf, Whiteboard: mobilestartupshrink)

gold has the possibility of removing lots of our dead code paths, which should positively affect performance.
Assignee: nobody → mh+mozilla
Whiteboard: mobilestartupshrink
After a bit of a struggle with the NDK build system, binutils 2.20.1 not wanting to build at all, binutils 2.21.1 leading to a crash when enabling icf, I got a working setup with supposedly a checkout of the 2.21 branch from the 20th of july (but I have to double check what the tarball I got actually is, it might just be current HEAD, which is the future 2.22).

Linking with that gold with --gc-sections gets me a 15979712 bytes libxul.so.
Adding --icf=safe gets that down to 15463616, and --icf=all down to 15439040. Changing the number of icf iterations doesn't seem to have an impact.
(these are numbers with ndk r4c, though. I need to upgrade to ndk 5)
Blocks: 622908
Keywords: mobile, perf
OS: All → Android
Hardware: All → ARM
Depends on: 675867
As for the impact on startup time, it has an obvious impact on the time spent uncompressing libxul.so from the apk when the libraries are not cached. Considering it takes somewhere between 500 and 600ms on my Nexus S for libxul.so alone, we'd be looking at 15 to 20ms, which is not a whole lot but can add up to all that can make libxul.so smaller.
There is not much point in investigating this. Gold is required for a whole bunch of optimizations
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.