next up previous
Next: Reduction of Stack Usage Up: Experiences with modularizing the Previous: Features of the core


Comparison of core sizes

Compiling the modified Tcl core for a number of different flags combinations yielded Table 2. It shows us how much of the object code in a static interpreter is used by the various features.


Table 2: Size of libtcl.afor selected variants
Flags lib/libtcl8.3.a
  Size, absolute Size, relative Shrinkage, relative
  490124 100.00 0.00
TCL_NO_CHANNEL_EOF 489964 99.97 0.03
TCL_NO_CHANNEL_BLOCKED 489940 99.96 0.04
TCL_NO_PIDCMD 489824 99.94 0.06
TCL_NO_CHANNEL_READ 489420 99.86 0.14
TCL_NO_TTY 488268 99.62 0.38
TCL_NO_CHANNELCOPY 488032 99.57 0.43
TCL_NO_LOADCMD 487264 99.42 0.58
TCL_NO_CMDALIASES 486576 99.28 0.72
TCL_NO_SLAVEINTERP 485080 98.97 1.03
TCL_NO_CHANNEL_CONFIG 484932 98.94 1.06
TCL_NO_SOCKETS 484428 98.84 1.16
TCL_NO_FILEEVENTS 484376 98.83 1.17
TCL_NO_SLAVEINTERP 480624 98.06 1.94
TCL_NO_CMDALIASES      
TCL_NO_PIPES 480136 97.96 2.04
TCL_NO_NONSTDCHAN 463544 94.58 5.42
TCL_NO_FILESYSTEM 440940 89.96 10.04
MODULAR_TCL 403228 82.27 17.73

It is obvious from looking at this table that most of the chosen features reduce the overall size of the static interpreter by only very small amounts of space. Only the file system code and the code dealing with the management of channels beyond the standard channels reduce the size by moderately significant amounts of space.

There is obviously room for improvement here. The question is, where are the features whose removal will reduce the library by significant amounts of space ? Our best answer so far is Table 7. This table lists the 36 largest object files and thus points us to the main areas we should look into.

Based on that data several possibilities for additional features to be removed are discussed in more detail later, in chapter 7, about our future work.


next up previous
Next: Reduction of Stack Usage Up: Experiences with modularizing the Previous: Features of the core
[email protected]