code-size.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 03 Oct 2015 18:29:10 +0300
changeset 1765 2132765de2f4
parent 279 061995ef35d2
permissions -rw-r--r--
Cellular automaton.

-*- mode: outline; coding: utf-8 -*-

* Common.

** Configuration.

Configure build with disabling unused features e.g.:

  $ ./configure --without-png

** Link dynamically.

Link dynamically instead statically (on your platform shared library may be
already present).

** Avoid debug build.

Make release/final build instead debug.

** Packer.

Use packers. Packer compress binary so binary smaller. When program load
decompress itself, so startup time increase.

  http://upx.sourceforge.net
                home page

* GCC.

Use -Os when produce *.o files.

Use -s when produce executable.
And "--remove-section=.comment and --remove-section=.note".

Use:

  $ strip --strip-all <executable>

and

  $ gcc -ffunction-sections -fdata-sections -c -o my.o my.c
  $ gcc -Wl,--gc-sections -o my my.o

* MSVC.

Use /Os when produce *.obj files.