2012-07-09 48 views
3

因此,我正在使用一個控制檯應用程序,該應用程序一次將持續數天,數週或數月。C#控制檯日誌記錄:它會有內存問題嗎?

它將有用的信息記錄到文本文件,但它也寫入控制檯。我是否擔心控制檯內存不會因爲某種原因被清除。這似乎是好的。

我寫了一個小測試在午餐時間運行。我添加了一些隨機間隔的字母,這樣我的同事就會認爲我必須處理一些大的東西,並且可以吃更長的午餐。

for (Int64 i = 0; i < 1000000000000000000; i++) 
      { 
       string random = Path.GetRandomFileName(); 
       random = random.Replace(".", ""); 
       random = random.Replace("m", "    "); 
       random = random.Replace("a", "         "); 
       random = random.Replace("h", "       "); 


       Console.WriteLine("i " + i + " " + random); 

      } 

因此,內存在寫入文件時看起來很穩定。我只是想要一些確認,如果我確實有內存問題,它不是從控制檯...

如果我記錄到一個文本文件以及內存確實如此輕微攀升。

+1

如果它是真正有用的信息,並且需要超過幾分鐘的時間才能運行,並且人類消化該信息,請將其記錄在控制檯以外的某個位置。 – 48klocs 2012-07-09 18:45:58

+1

+1用於編寫延長午休時間的程序 – 2012-07-09 19:03:26

+0

@ 48klocs我有一個單獨的詳細日誌,輸出文件路徑,執行時間和時間戳等細微的東西。主控臺只顯示週期中的進度,它處於什麼階段以及總計的嘗試和錯誤。 – FlavorScape 2012-07-10 20:19:17

回答

4

它將有用的信息記錄到文本文件中,但它也寫入控制檯。我是否擔心控制檯內存不會因爲某種原因被清除。這似乎是好的。

除非你有你的控制檯設置有一個巨大緩衝區,或者它重定向到一個內存中的文件系統,或者類似的東西。在正常情況下,應該沒問題。

1

不是一個問題,根據Console.SetBufferSize()指定的滾動控制檯緩衝區的任何文本都屬於位桶。最大緩衝區大小爲64KB,Console類忘記檢查的限制。