私の同僚はこの質問を昨日投稿しました:7-second EF startup time even for tiny DbContextエンティティフレームワークのスピンアップは、x64とx86の両方ではるかに遅い
コードを取り出して別のソリューションに移動してできるだけそれを分離すると、そのプロジェクトのプラットフォームターゲットがEFスタートアッププロセスの実行時に大きな影響を与えることがわかりました。
x64をターゲットにすると、テストでは最初のDbContextをスピンアップするのに7秒かかり、<秒で2番目のDbContextをスピンアップすることがわかりました(x64をターゲットにしている同僚の発見と一致します)。しかし、プラットフォームターゲットをx86に切り替えると、最初のDbContextのスピンアップ時間は約4秒短縮され、3.34633秒に短縮され、2番目のDbContextはx64の場合と同じ時間がかかった。
これを考慮すると、Entity Frameworkは、64ビットシステムと32ビットシステムをターゲットとする場合、はるかに異なる初期化プロセスを実行しているようです。これを説明するために何が起こっているのか誰にも洞察がありますか?
おそらくアセンブリプロービングですか?あなたはそれについての簡単なチェックとしてFusion Logを見ることができます。 –
@CraigStuntz融合ログを確認したが、x86とx64の違いは何も見えなかった。 – Sidawy
これは面白いです。 FYI EFには、32ビットまたは64ビットアーキテクチャ固有のコードはありません。純粋なILです。それでも差は大きいです。 – Pawel