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)原创或者转载,如若转载请务必注明出处,谢谢合作!
  • 相关阅读:
    Codeforces 1381B Unmerge(序列划分+背包)
    daily overview(2020.03.07update:该网站打不开惹
    矩阵相关
    颓式子
    51nod 1603 限高二叉排列树/1412 AVL树的种类
    模板合集(未完
    【luogu5651】 基础最短路练习题 [?]
    一个大Za
    【2019.11.11】
    【noip2017】
  • 原文地址:https://www.cnblogs.com/YinaPan/p/sbformat.html
Copyright © 2011-2022 走看看