My iPhone app is getting ready to go to production and we like to cram in as much data as possible. When I poke around the generated .app file for my application I see a file named <executable name> which I assume is the compiled code. It is about 2.5 megs which seem large for what I am including in my app. What type of things should I check to make sure there aren't any unneeded items being included into my executable?
问题:
回答1:
There are a number of things you could do -- 2.5 MB is a small app.
One obvious way is to verify that your binary is in fact stripped. This removes unused references (e.g. functions which are not actually called) and debugging info.
Link Time Optimization (LTO) can save you a ton of space, although that applies to the C and C++ aspects of your program. It brought one of my programs down to about 1/5 the size.
Play with optimization settings.
O3
andO2
often produce a smaller binary thanOs
.Keep track of your dependent libraries. Their exported symbols may be relatively large.
Favor C or C++ for shared libraries in larger projects. If unused, they may be stripped or optimized away.
Minimize
static
data andstatic
functions, restricting their scope to the c, cpp, m, mm file.
回答2:
I probably wouldn't be overly concerned about the app being 2.5MB, but if you want to do due diligence in making sure you're only including what is really needed, I'd take a look at all of the resource files (images, views, movies, etc) that your project references and make sure that all of them are being used by the application.