AnyCpu和x86在执行时间上有很大差异

本文关键字:时间上 执行时间 x86 执行 AnyCpu | 更新日期: 2023-09-27 18:04:38

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

我在两个不同的项目(WPF&Console(中使用了这个类库项目中的一个类的Read方法。

我发现:使用类库读取WPF Application中的40MB文件需要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的平台目标是x86,而WPF Application的目标平台是AnyCpu。因此,我将WPF的目标平台更改为x86,并再次运行它。这次执行时间3min(快14min(

问题:有人知道改变目标平台是如何产生这样的影响的吗?但我仍然不知道为什么要使用WPF应用程序。当使用我的库中的相同输入调用相同方法时,是否比Console慢2分钟?

AnyCpu和x86在执行时间上有很大差异

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