困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Unityの話〜Debug.Logの処理負荷〜

ミニゲームレベルのアプリがどうも重いなーと思い、もしかしたらログかな?と思って調べて見た。
結果、Other Settings->Loggingの設定では、ログ出力の処理負荷が軽減されるわけでは無いことがわかったので、備忘録。

▼ログ出力のテスト処理書いて、挙動を確認してみた

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

public class DebugLogTest : MonoBehaviour
{
    [SerializeField]
    private Text OutputText = null;

    // Start is called before the first frame update
    void Start()
    {
        UnityEngine.Debug.unityLogger.logEnabled = false;
    }

    public void OnClick()
    {
        DateTime begin = DateTime.Now;
        Debug.Log(begin.Ticks);
        for (int i = 0; i < 10000; i++) {
            Debug.Log("output" + i);
        }

        DateTime end = DateTime.Now;
        Debug.Log(end.Ticks);

        OutputText.text = (end - begin).ToString();
    }

}

〇ScriptOnlyの状態
・Logがオン
Android実機:0.3

・Logがオフ
Android実機:0.04

〇Fullの状態
・Logがオン
Android実機:1.7~2.4

・Logがオフ
Android実機:0.045

〇Noneの状態
・Logがオン
Android実機:0.26

・Logがオフ
Android実機:0.04

▼結論
ログは明示的にオフにしないと、商用アプリでも負荷に繋がる。

▼備考
これは、以前投稿した

mochimoffu.hateblo.jp

これを利用して、デバッグ処理を呼ばなくする方法で解決した方が良い。