🗑️
【Unity】GC.Collectが発生して重くなる問題の解決策
Profilerでパフォーマンスのチェックをしていたら急にFPSが低くなる時がありました。
それの原因がGC.Collectでした。
GC.Collectとは
変数を宣言すると例えばたくさんの変数を入れられるリストだと
Update(){
List<int> hoge = new List<int>();
}
とすると次のフレームにはhogeはゴミとなってしまいます。
そのゴミを自動で処理する清掃機能がGC.Collctです。
GC.Collect問題の対策
最初に宣言しときましょう!
private List<int> intList = new List<int>();
update(){
}
という事です。これでゴミは生成されずにGC.Collectも発生しなくなります。
他の対策
・変数を最初に宣言して使い回す。新しく作らない。
・LIstはnewではなく、Clear()して使い回す。
・オブジェクトプールを使う
・LINQは使わない。
Discussion