言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

サイズ問題経過

結論を言えば、急に何メガも大きくなった件は簡単なメソッドを追加する事で解決した(update stream にアップ済)。具体的には終了時に StrikeFontSet allSubInstancesDo: [:sf | sf reset]. のような物を実行するだけでよい。これは、太線やイタリック等の派生フォントを削除するスクリプトだ。元々そういった派生フォントはイメージ保存時に削除する決まりになっていたのだが、どういったわけか多言語文字を処理する StrikeFontSet ではそうなっていなかった。

さらにサイズ問題を追及するかどうかは考えどころ。次の MessageTally の結果を見てみよう。

Nihongo 7 (開発者版) 25M -> 22.5M
Array                                 2098       87010       4450692    17.6
String                                5513       86238       4163310    16.5
CompiledMethod                       10695       51709       3276606    13.0
ByteArray                             3571         505       3151093    12.5
Bitmap                                3618         648       2273916     9.0
Association                            647       86762       1041144     4.1
Symbol                                3746       39249        972640     3.9
MethodChangeRecord                     406       39959        799180     3.2
ClassChangeRecord                     2852       11988        767232     3.0

Nihongo 7 (Plugin 版) 16.9M -> 14.8M
Array                                 2005       49974       3664348    20.6
ByteArray                             3233         437       2757807    15.5
Bitmap                                3516         301       2745200    15.5
CompiledMethod                       10362       40442       2294490    12.9
String                                5369       62766       1730580     9.7
Symbol                                3617       33889        837227     4.7
MethodDictionary                      1745        3426        510904     2.9
ShortPointArray                        322        3186        457956     2.6
Association                            608       32946        395352     2.2

Nihongo 6.1 (開発者版相当) 14.3M
ByteArray                             3451         391       3793568    22.7
Array                                 1521       50342       3053208    18.3
Bitmap                                3259         478       2308232    13.8
CompiledMethod                        9822       35016       2081553    12.5
String                                4544       63606       1376474     8.3
MultiString                           7633       12730        999120     6.0
Symbol                                3721       28471        707042     4.2
MethodDictionary                      1826        2992        404584     2.4

Plugin 版だけ見ればわりといい線いってるかな。ただ、Array の数は Plugin 版でもそれなりに多いし、何となく気になります。