当我使用我的一个库时,我发现了一些奇怪的东西!我有一个类库负责读取特定的文件类型。而且它的工作做得很好。
我在两个不同的项目(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分钟?
答案 0 :(得分:2)
在我的实践中,x86和x64性能没有太大区别。在您的情况下,原因可能在于不同的RAM使用情况;在x64模式下,所有对象引用都占用了两倍的RAM。