2010年12月1日

Random和GUID效能測試

在.net 1.1環境想取得唯一的檔名. 本是可利用Path.GetTempFileName()建立並取得唯一的暫存檔完整路徑, 但因要存在特定目錄, 所以採自行產生檔案‧有兩個方案來達到這樣的目的:

  • GUID
  • yyyyMMDDSSfff + random
但想知道這兩者哪一個方式會比較快, 因此撰寫以下程式來實驗

環境

image

程式碼

System.Random rnd=new Random();
public int maxCount = 100000;
private void button2_Click(object sender, System.EventArgs e)
{
DateTime startTime = DateTime.Now;
string aa;
for (int i=0; i < maxCount ; i++)
aa=rnd.Next(100000).ToString("000000");


DateTime endTime = DateTime.Now;
TimeSpan span = endTime.Subtract ( startTime );
this.label2.Text = span.TotalSeconds.ToString();

}

private void button1_Click(object sender, System.EventArgs e)
{
DateTime startTime = DateTime.Now;
string aa;
for (int i=0; i < maxCount; i++)
aa=System.Guid.NewGuid().ToString();


DateTime endTime = DateTime.Now;
TimeSpan span = endTime.Subtract ( startTime );
this.label1.Text = span.TotalSeconds.ToString();
}



結果




跑10萬筆


  • GUID :1.46秒
  • random:0.4秒

沒有留言:

張貼留言