因為我本還是個初心者,所以只寫一點我想到的測字串寫入時間的方法
代瑪在此,用主控台ConsoleApplication測試
public static void Main(string[] args)
{
//檔案路徑
string FilePath =
@"C:\Users\winnie\Desktop\Orinew.txt";
//清空檔案內容以便測試最後寫入字串後檔案大小
File.WriteAllText(FilePath, "");
//開始計時
DateTime time_start = DateTime.Now;//計時開始 取得目前時間
//測試字串
string h = "kkkkkkkkkkkkkkkkkkkkkkkkkkkk\n";
using (StreamWriter writer = new StreamWriter(FilePath, true, Encoding.UTF8))
{
//多次執行模仿緩衝區(不確定這樣講對不對)的效果,因為發現一次累加太多次字串速度比較慢
for (int d = 0; d < 10000; d++)
{
string Str = "";
for (int i = 0; i < 100; i++)
{//累加字串
Str += h;
}
//為方便看見程式執行進度而寫
Console.WriteLine("hit");
//將累積字串寫入檔案
writer.Write(Str);
}
}
DateTime time_end = DateTime.Now;//計時結束 取得目前時間
//後面的時間減前面的時間後 轉型成TimeSpan即可印出時間差
string result2 = ((TimeSpan)(time_end - time_start)).TotalMilliseconds.ToString();
Console.WriteLine(result2);
Console.Read();
}
跑完就會印出花多久,檔案大小多大就去檔案那邊右鍵內容看一下
這個測試程式碼寫入字串的總行數是將兩個for裡的數字相乘
for (int d = 0; d < 10000; d++)
{
string Str = "";
for (int i = 0; i < 100; i++)
{//累加字串
Str += h;
}
//為方便看見程式執行進度而寫
Console.WriteLine("hit");
//將累積字串寫入檔案
writer.Write(Str);
}
也就是10000x100 就是一百萬,這邊是可以改的,有兩種改法
第一個是保持兩者相乘等於同一個值
以一百萬為例,可以用外迴圈5000x內200
或外20000內50等等調整,我測試試發現內迴圈過大或過小好像都會變慢,滿有趣的
第二個當然就是將相乘的值增加或減少,這樣子最後寫入檔案的大小也會變,
例如提高到兩百萬,時間通常會變長檔案也會變大
我想到的大概是這樣子
留言列表