【Unity】プロファイラーでガベージコレクションを発生させる箇所を調べる

投稿者: | 2021-03-15

参照型の場合、変数の寿命ではなくガベージコレクタによってメモリが回収されます。このガベージコレクションのために一瞬動作が遅くなることがあります。

そこで、このメモリの確保のときに発生するGC Allocをプロファイラーで見つけて、どのスクリプトが原因かを調べてみました。

まず、プロファイラーのヒエラルキーモードで「gc.alloc」を検索します。

Overviewにいくつか見つかったので、行を選択して、検索窓の横のドロップダウンからShow Callsを選びます。

すると、Called Fromに原因となるメソッドのリストが表示されます。

これで簡単に原因の箇所を見つけられました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StringCreator : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {

        List<string> text = new List<string>(200);
        
    }
}

行を選んで検索窓の右のバツボタンやFキーを押すと、その行を選択したまま全ての行を表示できます。

コメントを残す

メールアドレスが公開されることはありません。