ソースコードによる自動シリアライズ 6

 よし、20万行のソースも関数分割で無事デシリアライズできた。

 しかしこれはまだコレクションの中身を関数に分割してるだけで、コレクション自体が100万個とかあったら多分壊れる。あとまれなケースで理論上バグるからそこをどうするかだな。識別子が長くなりすぎて壊れる可能性もある。128文字だっけ。コレクションを使わずに引数100万個の関数とか作られても多分壊れるだろうけどそれは問題ないな。

 しかしこの辺になるとJITコンパイルボトルネックになってくるようだな。まあたいしたことはないけど。

 BinaryFormatterで642KB,シリアライズしたソースをzipに圧縮すると399KB,ReleaseでコンパイルしたILが1006KBか。なかなかいい圧縮率だ。XMLだと圧縮すると350KBなので負けてる。バイナリはzipに圧縮して222KB。ILは圧縮すると258KBだが。しかしXMLを使うためにデフォルトコンストラクタを作りセッターを作りで気持ち悪いことになったからXMLは微妙だ。