閉じる

コードサイズの縮小

マルチセグメント化で一度は動くようになったけれど、いまいち挙動が安定しない。
どうも、マルチセグメント化時に従わなければ行けない規則に抵触しているようなのだけれどいまいちわからない。
なので、コードサイズを小さくすることで逃げるように方向転換。
基本的にインライン展開される STLが肥大化の一番の要因であることは想像がつくのでラッパーを作って総量を抑制するように。
この際目安になるのが m68k-palmos-sizeコマンド。

USER@lachesis:~/decop/edit$ ~/local/palm/bin/m68k-palmos-size *.o
text    data     bss     dec     hex filename
196     196       0     392     188 application.o
818     472       0    1290     50a bottomlist.o
290     276       0     566     236 decop.o
4       4       4      12       c decop_e-sections.o
314     284       0     598     256 decopapplication.o
1010     872       0    1882     75a decoplan.o
46       0       0      46      2e device.o
1916     764       0    2680     a78 divelist.o
3662    2192      42    5896    1708 editbottomform.o
2686    1664      36    4386    1122 editdivenoform.o
4696    2368     146    7210    1c2a editplanform.o
884     852       0    1736     6c8 formbase.o
68       0       0      68      44 gccfix.o
288     460       8     756     2f4 infoform.o
96     148       0     244      f4 modaldialog.o
192     264       0     456     1c8 ownerdrawlist.o
660     492       8    1160     488 palm.o
1066    1028       0    2094     82e wrapper.o

ってな感じにオブジェクトコード毎のサイズを示してくれるので変更の結果が具体的にわかる。
ちなみに textが 20KiBを超えると赤信号。
富豪的プログラミングでぬるま湯につかっていた身としては非常に厳しいね。
C++は向いてないんだろうな。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)