当我使用我的一个库时,我发现了一些奇怪的东西!我有一个类库负责读取特定的文件类型。它的工作很好。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