2

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

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

我发现:WPF Application使用类库读取一个 40MB 的文件需要17min但是使用1min读取相同的Console Application文件。

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

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

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

问题:有谁知道改变目标平台是如何产生这种影响的?而且我仍然不知道为什么 WPF 应用程序。使用我的库中的相同输入调用相同方法时比控制台慢 2 分钟?

4

1 回答 1

2

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

于 2013-03-18T07:16:58.283 回答