realbasic-nug
[Top] [All Lists]

Tips Shrinking App Size

To: REALbasic NUG <realbasic-nug@lists.realsoftware.com>
Subject: Tips Shrinking App Size
From: Michael Diehr <md03@xochi.com>
Date: Fri, 30 Jan 2009 09:18:41 -0800
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by best guess record for domain of realbasic-nug-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
Reply-to: REALbasic NUG <realbasic-nug@lists.realsoftware.com>
Sender: realbasic-nug-bounces@lists.realsoftware.com
I just completed the first steps of updating my app (which formerly was written in REALbasic 4.5) to compile 2008R5.1. I expected the file size to increase a bit, but was surprised by how large it is now. To be fair, the updated version of my app has more features, so part of the size increase is expected, but still...

             RB2008     RB4.5
 Mac Intel : 15.3MB
 Mac PPC   : 15.7MB     4.4MB
 Mac UB    : 28.2MB
 Win32     : 14.9MB     3.1MB

About a 4x increase for a single platform, and nearly a 7x increase to make a universal binary.

Poking around in the package contents for the Intel version, I find:

Frameworks              2900K
        MBS  2100K
        RB    800K
MacOS                   9500K
        App  6800K
        RB   2700K

Resources               2900K
        ICNS 1900K
        art  1000K
        
Total                   15300K


A few things stand out --

* ICNS: any filetype defined with an icon seems to include a full ICNS icon file, which typically is 104K. I had 18 of these which are not needed and can be stripped. Savings: 1800K

* Art: some of my art is using TIFFs instead of PNGs or JPGs. Savings: 1000K

* Frameworks: MonkeyBreadSoftware (MBS) plugins. Some of these are quite large (e.g. the TIFF plugin is > 500K). I can probably reduce the # of these by carefully trimming code & features and using using declares instead of plugins in a few cases. Savings: perhaps 800K ?

* Frameworks: REALBasic: RBXML.rbx_0.dylib is 560K and I believe is related to my use of the XMLDocument class. Not sure if I can strip this.


So, with some judicious trimming, I think I can reduce my 15MB app down to about 12MB. Better, but still a nearly 3x increase from before.

The good news is that the app compresses quite well: From 12MB down to about 3MB. The old RB4.5 app only compressed from 4.4MB down to 1.4MB.

So, on the one hand, my app has grown 4x in size. On the other hand, zipped, it's only grown by 1.6MB. The reason I care so much about file size is that this app gets included in a media build and then gets downloaded 100s or 1000s of times.

Any ideas on ways to further compact the app?
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>


<Prev in Thread] Current Thread [Next in Thread>