最新開発版の吉里吉里では配列や辞書をバイナリで読み書きできます。が、読み込んだ辞書が解放されない。
以下のloadBin()を呼ぶたびにメモリ使用量が際限なく増えていきます。load()では大丈夫。明示的にinvalidateしても消えない。詳細は不明。
var dic = %[]; (Dictionary.saveStruct incontextof dic)("dic.tjs", ""); (Dictionary.saveStruct incontextof dic)("bin.tjs", "b"); function load() { for (var i = 0; i < 10000; ++i) { var d = Scripts.evalStorage("dic.tjs"); } } function loadBin() { for (var i = 0; i < 10000; ++i) { var d = Scripts.evalStorage("bin.tjs"); } }
■追記
吉里吉里Zではこのバグは修正されています。
吉里吉里2は修正されないようなのでバイナリ形式のファイルを繰り返し読み込むのは止めましょう。メモリを使いすぎて最終的にゲームが強制終了します。