チェンジセットを削除してみる

おおしまさん(id:squeaker)にアドバイスを受けて、changesetのdestroyをしてみることに。
実は、Classのシュリンクと聞いて真っ先にやったのが、ChangeSetツールのメニューにある"Uninstall this ChangeSet"だったのですが、何をやってもHaltしてしまうため、Changeset経由のシュリンクは諦めていたのでしたが、"destroy"のメニューが削除だったんですね。いや、名前からするといかにもなんですけど(^^;)。
それ以前にSystemBrouserツール経由であらかたクラスは削除していたのですが、その上でさらにChangeSetもdestroyしてみました。
以下は"Smalltalk garbageCollect."後に"Help->VM statistics"で出た値です。

元イメージ
12660940
元イメージ-クラス
11105880
元イメージ-クラス-チェンジセット
10089600

試しに、今度はチェンジセットを削除してからやってみたものも。

元イメージ
12660940
元イメージ-チェンジセット
11829224
元イメージ-チェンジセット-クラス
10055438

チェンジセットを削除してからの方が若干小さいような気もしますが、まぁ、この辺はガーベジコレクトをさんざんやってるとそのうちまた変化するし。
と、いうわけで、実に10M近くにまで減らすことが出来たのでした。削減量、約2.5Mbyte、元容量の20%の削減は結構メモリに響いてきますね。
……とはいえ、私のSpecialKernel入りZaurusはターミナルのみでそれ以外は何も動いていない状態で、

total used free
Mem: 29844 26832 3012
Swap: 62588 11560 51028
Total: 92432 38392 54040

という素敵なメモリ食いっぷりなので、2M程度削減したところでメモリ領域はswap経由になるでしょうですから、パフォーマンスに与える影響はさほど大きくないんですけどね(^^;)。やっぱり、仮想メモリって遅いし。

ま、元の目的(パフォーマンス改善のために必要メモリを減らそう)はこの際さておき、相対的に貧弱な環境でのチューニングが大変楽しかったので週末はなかなか有意義な時間を過ごしました。いろいろ教えてくださったSqueakコミュニティの皆さん、ありがとうございました。