3

我有一个 .NET 4.0 类库,它只使用 .Net 2.0 功能。为了使这个库与 Mono 更兼容,我正在考虑将 Target Framework 更改为 2.0 而不是 4.0 Client Profile。

但问题是:将目标框架更改为旧版本是否会使库运行速度变慢(损害性能)。该应用程序的 GUI 仍将面向 4.0,因此所有运行该应用程序的 Windows PC 都将安装 4.0 框架。我的 2.0 库是由 4.0 JIT 编译器(性能应该相同)还是由旧的 2.0 JIT(性能可能更慢)执行?

4

3 回答 3

1

If you target the old framework, then the code will execute on the old CLR. So performance will be that of the old CLR and potentially slower but you'd have to profile to see if it's an issue.

于 2010-10-12T11:42:00.757 回答
1

不,因为应用程序仍然以框架的版本 4 为目标(正如您所说的“应用程序的 GUI 仍然以 4 为目标”),所以所有代码都将使用 V4 jit,因此即使给定的 dll 目标 V2 也以 V4 速度运行框架。

于 2010-10-12T11:48:45.923 回答
0

.NET Framework 4与使用 1.1、2.0、3.0 和 3.5 版本构建的应用向后兼容。

就性能而言,我认为不会有明显的差异。您应该更关注由于过时的功能而破坏兼容性的不同框架版本。

有关详细的兼容性信息,请参见此处

于 2010-10-12T12:09:17.517 回答