目次

Unity上でGCによるStopTheWorldを抑えるための工夫

今ゲーム開発中なんですが、GCが常に発生していてやべえ!ってなってます。 とはいうものの便利だし、今の所Miniscriptで読み込む文字列を解釈するにはGC必須だし。

ということでスクリプトを書くときの基本方針についてメモします。

状況

基本方針

コンパイル処理については最適化がされないため、処理速度の向上やGC回避に対し、ソースコードの内容がモロに反映される模様。

UnityでのGCヒッチ回避策

GCで利用してるメモリ量の確認方法

//tmp_mem:TextMeshProを利用したTextクラス
public TMP_Text tmp_mem;
 
//GCにて確保されてるメモリ量を取得する
memory_val = System.GC.GetTotalMemory(false);
 
//現在利用中のメモリ量を転記する。
tmp_mem.text = "allocated memory : " + ((float)memory_val/1024.0f/1024.0f).ToString() + " Megabyte";

参考資料

【Unityメモ】使用メモリの把握|マカロン【ゲーム開発】|note

https://note.com/08_14/n/nce77c8075367