本文是關於String和String Builder的工作效率的測試。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CompareStrAndStrBuilder
{
class Program
{
static void Main(string[] args)
{
const int sLen = 30, Loops = 5000;
DateTime sTime, eTime;
int i;
string sSource = new string('X', sLen);
string sDest = "";
//---Time String Concaternation---
sTime = DateTime.Now;
for (i = 0; i < Loops; ++i)
sDest += sSource;
eTime = DateTime.Now;
Console.WriteLine("Concatenation took " + (eTime - sTime).TotalSeconds + " seconds.");
//---Time StringBuilder---
sTime = DateTime.Now;
StringBuilder sb = new StringBuilder((int)(sLen * Loops * 1.1));
for (i = 0; i < Loops; ++i)
sb.Append(sSource);
sDest = sb.ToString();
eTime = DateTime.Now;
Console.WriteLine("String Builder took " + (eTime - sTime).TotalSeconds + " seconds.");
Console.ReadKey();
}
}
}
--------------------------------------
運行結果
由此可見String Builder的效率很快,持續之短讓我這渣電腦看不出來String Builder的運行時間。比普通String的操作效率高出數個數量級。
----------------------------------
2016.3.14