zoukankan      html  css  js  c++  java
  • StringBuilder和string.Format性能对比

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/sbformat.html

    StringBuilder的性能优于string.Format,但是需要格式化的东西不多时,性能差距不大。

    using UnityEngine;
    using System.Collections;
    using System.Text;
    
    public class Test_sb_Format : MonoBehaviour {
        private StringBuilder m_sb = new StringBuilder();
        private string m_result = null;
        private int m_count = 1000;
    
        void TestSb1() {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < m_count; ++i) {
                sb.Append("Test_");
                sb.Append(i);
                m_result = sb.ToString();
            }
        }
    
        void TestSb2() {
            for (int i = 0; i < m_count; ++i) {
                m_sb.Length = 0;
                m_sb.Append("Test_");
                m_sb.Append(i);
                m_result = m_sb.ToString();
            }
        }
        void TestFormat() {
            for (int i = 0; i < m_count; ++i) {
                m_result = string.Format("Test_{0}", i);
            }
    
        }
    
        void TestAdd() {
            for (int i = 0; i < m_count; ++i) {
                m_result = "Test_{0}" + i;
            }
        }
    
        void Update () {
            Profiler.BeginSample("TestSb1");
            TestSb1();
            Profiler.EndSample();
    
            Profiler.BeginSample("TestSb2");
            TestSb2();
            Profiler.EndSample();
    
            Profiler.BeginSample("TestFormat");
            TestFormat();
            Profiler.EndSample();
    
            Profiler.BeginSample("TestAdd");
            TestAdd();
            Profiler.EndSample();
        
        }
    }

    当count=1时,性能对比图:

    image

    当count=10时,性能对比图:

    image

    当count=100时,性能对比图:

    image

    当count=1000时,性能对比图:

    image

    综上所述:

    StringBuilder的性能优于string.Format,但是需要格式化的东西不多时,性能差距不大。

    据一本书上说:string.Format方法内部使用StringBuilder进行字符串的格式化的。

    本文由博主(YinaPan)原创或者转载,如若转载请务必注明出处,谢谢合作!
  • 相关阅读:
    VS2013 连接 MySQL
    2014年下半年的目标
    BI开发之——Mdx基础语法(2)(转至指尖流淌)
    BI开发之——Mdx基础语法(转至指尖流淌)
    数据仓库构建
    数据仓库的定义
    2014年计划:
    [转载]商业智能的三个层次
    BI入门基础知识-1
    ASP.NET MVC4 异常拦截
  • 原文地址:https://www.cnblogs.com/YinaPan/p/sbformat.html
Copyright © 2011-2022 走看看