//减少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); }
string TestBlock(string str) { using (CString.Block()) { CString sb = CString.Alloc(256); sb.Append("hello"); sb.CopyToString(str); return(str); } }
//public static CString ToCString(this System.Double number, string format, IFormatProvider provider) //{ // CString str = CString.Alloc(64); // str.NumberToString(format, number, provider); // return str; //} /// <summary> /// 使用CString src覆盖dest字符串len长度内容 /// </summary> /// <returns></returns> public static string ReplaceEx(this string dest, CString src, int len = -1) { if (len <= -1) { len = src.Length; } else if (len > src.Length) { throw new ArgumentOutOfRangeException("len > src.Length"); } if (len > dest.Length) { throw new ArgumentOutOfRangeException("len > dest.Length"); } return(src.CopyToString(dest, len)); }
private static string GetLogFormat(string str) { DateTime now = DateTime.Now; sb.Clear(); sb.Append(ConstStringTable.GetTimeIntern(now.Hour)).Append(":").Append(ConstStringTable.GetTimeIntern(now.Minute)) .Append(":") .Append(ConstStringTable.GetTimeIntern(now.Second)) .Append(".") .Append(now.Millisecond) .Append("-") .Append(Time.frameCount % 999) .Append(": ") .Append(str); string text = StringPool.Alloc(sb.Length); sb.CopyToString(text); return(text); }
//减少gc alloc static string GetLogFormat(string str) { DateTime time = DateTime.Now; //StringBuilder sb = StringBuilderCache.Acquire(); //sb.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); //return StringBuilderCache.GetStringAndRelease(sb); sb.Clear(); sb.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); String dest = StringPool.Alloc(sb.Length); sb.CopyToString(dest); return(dest); }