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时,性能对比图:
当count=10时,性能对比图:
当count=100时,性能对比图:
当count=1000时,性能对比图:
综上所述:
StringBuilder的性能优于string.Format,但是需要格式化的东西不多时,性能差距不大。
据一本书上说:string.Format方法内部使用StringBuilder进行字符串的格式化的。




1065

被折叠的 条评论
为什么被折叠?



