.NETターゲットフレームワークのパフォーマンス
-
29-09-2019 - |
質問
.NET 2.0機能のみを使用する.NET 4.0クラスのLibaryがあります。このライブラリをMonoとより互換性のあるものにするために、4.0クライアントプロファイルではなく、ターゲットフレームワークを2.0に変更することを検討しています。
ただし、問題は次のとおりです。ターゲットフレームワークを古いバージョンに変更して、ライブラリの実行を遅くします(パフォーマンスを傷つけます)。アプリケーションのGUIは引き続き4.0をターゲットにするため、アプリケーションを実行しているすべてのWindows PCに4.0フレームワークがインストールされます。 2.0ライブラリは、4.0 JITコンパイラ(パフォーマンスは同じである必要があります)または古い2.0 JIT(パフォーマンスが遅くなる可能性がある)によって実行されますか?
解決
いいえ、アプリはまだフレームワークのバージョン4をターゲットにしているため(「アプリケーションのGUIは引き続き4ターゲット4」と言ったように)、すべてのコードはV4 JITを使用し、したがって、与えられたDLLターゲットV2の場合でもV4速度で実行されます。枠組み。
他のヒント
古いフレームワークをターゲットにすると、コードは古いCLRで実行されます。したがって、パフォーマンスは古いCLRのパフォーマンスであり、潜在的に遅くなりますが、それが問題であるかどうかを確認するためにプロファイルする必要があります。
.NETフレームワーク4 バージョン1.1、2.0、3.0、および3.5で構築されたアプリを使用すると、後方互換性があります。
パフォーマンスに関する限り、顕著な違いが明らかになるとは思いません。あなたは、互換性を破るさまざまなフレームワークバージョンについてもっと心配する必要があります 時代遅れの機能.