當我使用我的一個庫時,我發現了一些奇怪的東西!我有一個類庫負責讀取特定的文件類型。它的工作很好。AnyCpu和x86之間執行時間差異很大
我在這個類庫項目中使用了兩個不同項目(WPF & Console)中的類的Read
方法。
我發現:使用類庫讀取一個40MB的文件中WPF Application
需要17分鐘。但使用Console Application
讀取相同的文件需要1min。
下面是我在兩個不同的項目中使用的代碼。
DateTime t1 = DateTime.Now;
var geometris = MyLibrary.Read(fileName);
TimeSpan dt1 = DateTime.Now - t1; //dt1: 17min for WPF
//dt1: 1min for Console
我試了一下:我發現Console Application
的目標平臺是86和WPF Application
的目標平臺值爲anycpu。所以我將WPF
的目標平臺更改爲x86並再次運行。這一次,執行時間爲3分鐘(14分鐘快)
問:任何人都知道如何改變目標平臺有這樣的影響力?我仍然不知道爲什麼WPF應用程序。當從我的庫中調用相同的輸入方法時,比控制檯慢2分鐘?
如果您使用[Stopwatch](http://msdn.microsoft.com/zh-cn/library/system.diagnostics.stopwatch.aspx)來測量執行時間,它會更好。您是否在項目的發佈模式或調試模式下構建? – Habib 2013-03-18 06:54:50
Theres在你嘗試過的部分中出現錯誤。也許,你是否將WPF應用程序更改爲x86 plattform? – Jehof 2013-03-18 06:55:45
@Habib其實我使用秒錶,但在這裏我使用了'DateTime',因爲它需要更少的代碼行。我在Debug模式下構建 – 2013-03-18 06:57:54