本文由博主(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時,性能對比圖:
當count=10時,性能對比圖:
當count=100時,性能對比圖:
當count=1000時,性能對比圖:
綜上所述:
StringBuilder的性能優於string.Format,但是需要格式化的東西不多時,性能差距不大。
據一本書上說:string.Format方法內部使用StringBuilder進行字符串的格式化的。




