【unity】セーブ系のGC検証を行ってみる。
あらすじ
たまたまprofilerで検証していてなんか重たいと思っていたら、セーブ関係がGC Allocしていたので、ちょっと検証してみました。
比較対象
大体3つ程を比較してみました。
・EasySave3
・System.IOでの書き込み
・PlayerPrefs
ちなみに検証サンプルはint配列1000個分(int[] intarray = new int[1000])です。たぶん、ここらへんは数字比較できれば小さくても問題ないと思います。
結果
・EasySave3
GCAllocはある程度そこそこ出ているものの、
PlayerPrefsより重たくないっぽい
・System.IOでの書き込み
GCAllocはほとんど出ていないけども、
ファイルが上がってくるまでにだいぶラグがあるので、
工夫が必要っぽい
・PlayerPrefs
unityのデフォルトのセーブ機能。
一番GCAllocが出ているっぽい。やばい。
結論
出具合はどちらにせよ、どの手法にしてもセーブ(ファイル書き込み絡み)はGCAllocが出るっぽい(おそらくはファイル系IO関係上出るかもしれません)。
ゲームのタイミング次第で違和感を出さずに済むかもしれないので、工夫が大事かもしれません(常時セーブはしないほうが良いのはわかった)。
この記事が気に入ったらサポートをしてみませんか?