AnyCpu和x86之间的执行时间差异很大

时间:2013-03-18 06:51:41

标签: c# wpf benchmarking execution-time target-platform

当我使用我的一个库时,我发现了一些奇怪的东西!我有一个类库负责读取特定的文件类型。而且它的工作做得很好。

我在两个不同的项目(WPF和控制台)中使用了此类库项目中的类的Read方法。

我找到的内容:使用类库在WPF Application中读取40MB文件需要 17分钟。但是,使用Console Application阅读同一文件需要 1分钟

这是我在两个不同项目中使用的相同代码。

DateTime t1 = DateTime.Now;                             
var geometris = MyLibrary.Read(fileName);
TimeSpan dt1 = DateTime.Now - t1;       //dt1: 17min for WPF
                                        //dt1:  1min for Console                       

我尝试了什么:我发现Console Application的平台目标是x86,而WPF Application的目标平台是AnyCpu。所以我将WPF的目标平台更改为x86并再次运行它。这次执行时间 3min (快14分钟)

问题:任何人都知道如何更改目标平台有这样的影响力?而且我仍然不知道为什么WPF应用程序。使用我库中的相同输入调用相同的方法时,比控制台慢2分钟?

1 个答案:

答案 0 :(得分:2)

在我的实践中,x86和x64性能没有太大区别。在您的情况下,原因可能在于不同的RAM使用情况;在x64模式下,所有对象引用都占用了两倍的RAM。