//减少gc alloc static string GetLogFormat(string str) { var time = DateTime.Now; sb.Clear(); sb.Append(ConstStringTable.GetTimeIntern(time.Year)) .Append("-") .Append(ConstStringTable.GetTimeIntern(time.Month)) .Append("-") .Append(ConstStringTable.GetTimeIntern(time.Day)) .Append("-") .Append(ConstStringTable.GetTimeIntern(time.Hour)) .Append(":") .Append(ConstStringTable.GetTimeIntern(time.Minute)) .Append(":") .Append(ConstStringTable.GetTimeIntern(time.Second)) .Append(".") .Append(time.Millisecond) .Append("-") .Append(Time.frameCount % 999) .Append(": ") .Append(str); var dest = StringPool.Alloc(sb.Length); sb.CopyToString(dest); return(dest); }
static Debugger() { for (int i = 24; i < 70; i++) { StringPool.PreAlloc(i, 2); } }
public static void Log(string str) { if (!UseLog) { return; } str = GetLogFormat(str); Debug.Log(str); StringPool.Collect(str); }
public static void LogException(string str, Exception e) { if (!UseLog) { return; } threadStack = e.StackTrace; str = GetLogFormat(str + e.Message); Debug.LogError(str); StringPool.Collect(str); }