On Feb 22, 12:29 am, Steven D'Aprano <steve +comp.lang.pyt...@pearwood.info> wrote: > On Tue, 21 Feb 2012 19:51:07 -0800, CM wrote: > > I have an application that I was hoping to reduce a bit the size of its > > .exe when "packaged" with py2exe. I'm removing some Python modules such > > as Tkinter, etc., but now wonder how much I could size I could reduce by > > refactoring--and therefore shortening--my code. > > Well that will depend on how much you refactor it, but frankly, unless > your code is truly awful, this will be a micro-optimization. py2exe > bundles a Python runtime environment plus your files into a single exe > file. Typically the runtime environment will be somewhere around 11MB for > wxPython GUI apps (or 4MB with compression turned on, which will slow > your application down). > > http://www.py2exe.org/index.cgi/SingleFileExecutable > > The runtime environment for Oracle's Java environment starts at 7MB and > is typically 15MB, plus whatever libraries your own code produces. For > dot-net applications, the framework can be up to 60MB. > > http://weblogs.java.net/blog/stanleyh/archive/2005/05/deployment_unde... > > http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramewor... > > While I think 60MB for a basic calculator app is taking the piss, this is > 2011 not 1987 and we don't have to support floppy disks any more. 11MB > for a GUI app is nothing to be worried about. That takes, what, 3 minutes > to download even on a 512 kbps link? > > > Is there a rule of thumb that predicts the relationship between the > > number of lines of Python code and the resultant size of the application > > (leaving aside the size of imported modules)? > > Yes. To a close approximation, for most applications: > > size of bundled application = ( > size of Python runtime environment + size of libraries used > ) > > Your code is most likely insignificant compared to the others. > > > Or is there a way to > > roughly estimate how much would refactoring the code as much as I > > reasonably can help? (For example, in some cases there is some cut and > > paste coding...I know, it's bad). > > Look at it this way: take the .pyc file from your code. How big is it? > Say, it's 200K. That's a BIG file -- the decimal module in the standard > library is only 152K. Suppose you could cut it in half -- you would save > 100K. Even if you could somehow cut it down to 1K, you've saved less than > 200K. Do you care? > > Refactoring your code is double-plus good for maintainability. You should > do it anyway. But don't do it to shrink an 11MB exe down to 10.8MB. > > -- > Steven
Thanks. All helpful advice. I'm coming in around 14 MB when you count some libraries, image files, etc., and I think I can live with that, considering I was able to reduce it from about 20 MB at one point by some excluding. Che -- http://mail.python.org/mailman/listinfo/python-list