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)原创或者转载,如若转载请务必注明出处,谢谢合作!
  • 相关阅读:
    [洛谷P3360]偷天换日
    [BZOJ3195]奇怪的道路
    [BAOJ3631]松鼠的新家
    [BZOJ4899]记忆的轮廓
    [BZOJ3940]Censoring
    P3303 [SDOI2013]淘金
    2019.8.5 NOIP模拟测试13 反思总结【已更新完毕】
    2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】
    2019.8.1 NOIP模拟测试11 反思总结
    洛谷P2178 [NOI2015]品酒大会
  • 原文地址:https://www.cnblogs.com/YinaPan/p/sbformat.html
Copyright © 2011-2022 走看看