using System;
using UnityEngine;

namespace JNGame.Runtime.Util
{
    public class Profiler
    {
        
        // [System.Diagnostics.Conditional("ENABLE_TEST_SROPTIONS")]
        public static void BeginSample(string tag)
        {
#if UNITY_5_3_OR_NEWER
            UnityEngine.Profiling.Profiler.BeginSample(tag);
#endif
        }

        // [System.Diagnostics.Conditional("ENABLE_TEST_SROPTIONS")]
        public static void EndSample()
        {
#if UNITY_5_3_OR_NEWER
            UnityEngine.Profiling.Profiler.EndSample();
#endif
        }

        /// <summary>
        /// 统计标记时间
        /// </summary>
        private static DateTime s_MarkStart;

        /// <summary>
        /// 重置当前时间
        /// </summary>
        public static void ResetElapseTime()
        {
            s_MarkStart = DateTime.Now;
        }

        /// <summary>
        /// 统计时间间隔,单位:毫秒
        /// </summary>
        /// <param name="tag"></param>
        public static void LogElapseTime(string tag = "")
        {
            var ms = (DateTime.Now - s_MarkStart).TotalMilliseconds;
            Debug.LogWarning($"{tag} use time:{ms} ms");
            s_MarkStart = DateTime.Now;
        }
    }
}