🗑️

【Unity】GC.Collectが発生して重くなる問題の解決策

2021/04/26に公開

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