[Scummvm-devel] ScummVM binary size comparison

Neil Millstone neil at millstone.demon.co.uk
Sat Nov 8 00:23:13 CET 2008


Hi Max and Team,

I found some time to work on ScummVM today.  I fixed various filesystem 
bugs which prevented the game from running, then I ran today's trunk 
build (type A) and compared it to my last 0.12.0 build.

Currently, I have 2148Kb of memory in use at the front end, and in the 
0.12.0 build, I had 1968k in use.  That's a growth of nearly 10% on the 
whole program.  Most of this appears to be because of the larger 
executable size.

So I used Max's handy command from an earlier post to find the biggest 
object files.  I'm compiling with my normal settings.  ARM instruction 
set mode (I'm sure thumb mode doesn't work with the current compiler), 
Optimisation at -Os (with a small number of files at -O2).

$ size */*.a |sort -nr |head -n 20
   text    data     bss     dec     hex filename
  55703       0       0   55703    d997 ThemeEngine.o (ex gui/libgui.a)
  40828       0       0   40828    9f7c ThemeParser.o (ex gui/libgui.a)
  34643       0       0   34643    8753 launcher.o (ex gui/libgui.a)
  24287       4       0   24291    5ee3 commandLine.o (ex base/libbase.a)
  22161      24       0   22185    56a9 options.o (ex gui/libgui.a)
  17471       0       0   17471    443f VectorRendererSpec.o (ex 
graphics/libgraphics.a)
  17299       0       0   17299    4393 audiostream.o (ex sound/libsound.a)
  16763       0       0   16763    417b about.o (ex gui/libgui.a)
  15876    1172    2048   19096    4a98 adlib.o (ex sound/libsound.a)
  14660       0   33516   48176    bc30 fmopl.o (ex sound/libsound.a)
  14140       0       0   14140    373c advancedDetector.o (ex 
common/libcommon.a)
  12264       0       0   12264    2fe8 mixer.o (ex sound/libsound.a)
  12179       4      68   12251    2fdb config-manager.o (ex 
common/libcommon.a)
  11954       0    1024   12978    32b2 unarj.o (ex common/libcommon.a)
  11311       0       0   11311    2c2f widget.o (ex gui/libgui.a)
  10611       0       0   10611    2973 default-events.o (ex 
backends/libbackends.a)
  10407       0       0   10407    28a7 console.o (ex gui/libgui.a)
  10255       0       4   10259    2813 archive.o (ex common/libcommon.a)
  10234       1      24   10259    2813 ym2612.o (ex sound/libsound.a)
   9697       0       0    9697    25e1 massadd.o (ex gui/libgui.a)

Out of interest, I ran the same command on my older build for 
comparison.  Same compiler settings.

$ size */*.a |sort -nr |head -n 20
   text    data     bss     dec     hex filename
  26136       0       0   26136    6618 launcher.o (ex gui/libgui.a)
  25360       4       0   25364    6314 commandLine.o (ex base/libbase.a)
  24516       4       0   24520    5fc8 theme-config.o (ex gui/libgui.a)
  21024      12       0   21036    522c options.o (ex gui/libgui.a)
  18020       0       0   18020    4664 audiostream.o (ex sound/libsound.a)
  16282    1172    2048   19502    4c2e adlib.o (ex sound/libsound.a)
  15900       0       0   15900    3e1c about.o (ex gui/libgui.a)
  14500       0       0   14500    38a4 advancedDetector.o (ex 
common/libcommon.a)
  14292       0   33516   47808    bac0 fmopl.o (ex sound/libsound.a)
  13775       0       0   13775    35cf ThemeClassic.o (ex gui/libgui.a)
  13364       0    1024   14388    3834 unarj.o (ex common/libcommon.a)
  11392       4      84   11480    2cd8 config-manager.o (ex 
common/libcommon.a)
  10964       0       0   10964    2ad4 massadd.o (ex gui/libgui.a)
  10468       1      24   10493    28fd ym2612.o (ex sound/libsound.a)
  10128       0       0   10128    2790 default-events.o (ex 
backends/libbackends.a)
   9632       0       0    9632    25a0 widget.o (ex gui/libgui.a)
   9264       4       4    9272    2438 font.o (ex graphics/libgraphics.a)
   9180       0       0    9180    23dc console.o (ex gui/libgui.a)
   8876       0       8    8884    22b4 file.o (ex common/libcommon.a)
   8560       0       0    8560    2170 mixer.o (ex sound/libsound.a)

It seems that the new GUI has caused the dialogs to increase in size, 
like launcher.o and massadd.o.

So, any ideas on how this can be improved?

Thanks,

- Neil




More information about the Scummvm-devel mailing list