Beispiel #1
0
        //减少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);
        }
Beispiel #2
0
 string TestBlock(string str)
 {
     using (CString.Block())
     {
         CString sb = CString.Alloc(256);
         sb.Append("hello");
         sb.CopyToString(str);
         return(str);
     }
 }
Beispiel #3
0
    //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));
    }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        //减少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);
        }