ライブラリの1つを使用していたときに、何か奇妙なことがわかりました。特定のファイルタイプの読み取りを担当するクラスライブラリがあります。そして、それはその仕事をうまくやっています。
Readこのクラスライブラリプロジェクトのクラスのメソッドを、2つの異なるプロジェクト(WPFとコンソール)で使用しました。
私が見つけたもの:WPF Applicationクラスライブラリを使用して40MBのファイルを読み取るには、17分かかります。ただし、同じファイルを使用して読み取るには1分Console Applicationかかります。
これは、2つの異なるプロジェクトで使用しているものと同じコードです。
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に変更して、再度実行しました。今回の実行時間は3分 (14分速かった)でした
質問:ターゲットプラットフォームの変更がそのような影響を与える方法を知っている人はいますか?それでも、なぜWPFアプリなのかわかりません。ライブラリから同じ入力を使用して同じメソッドを呼び出すと、コンソールより2分遅くなりますか?