网站功能配置,wordpress企业类模板下载,网络营销服务策略,域名网站注册认证.NET 中备受追捧和期待已久的功能NativeAOT终于出现在本周的.NET 7 预览版2中#xff0c;该项目的工作仍在继续#xff0c;该版本将 NativeAOT 从实验性的 dotnet/runtimelab repo 中移出合并进入稳定的运行时库 dotnet/runtime repo#xff0c;但尚未在 dotnet SDK 中添加足… .NET 中备受追捧和期待已久的功能NativeAOT终于出现在本周的.NET 7 预览版2中该项目的工作仍在继续该版本将 NativeAOT 从实验性的 dotnet/runtimelab repo 中移出合并进入稳定的运行时库 dotnet/runtime repo但尚未在 dotnet SDK 中添加足够的支持以使用 NativeAOT 发布项目。完成此操作后可以对实际测试进行完善了。.NET NativeAOT 编译器脱离实验性质正式跟随 .NET 7 Preview 2 发布到了官方 nuget 源https://www.nuget.org/packages/Microsoft.DotNet.ILCompiler 。从现在开始7.0.0-* 版本基本可以放心用在生产环境。我们可用开始尝试修剪我们的应用程序并确保没有剪裁警告。剪裁是 NativeAOT 的要求。GitHub 问题 .NET 7 中的 NativeAOT #61231 显示了正在检查的初始工作以及第一阶段的剩余工作NativeAOT 这个功能的完整支持真是不容易具体怎么用可用参考 hez2010的文章通过 .NET NativeAOT 实现用户体验升级。这里来回顾一下这个历程具体内容来自知乎的hez2010 的整理的内容 https://www.zhihu.com/question/472875939 Native AOT 2021.1~2021.7的进展托管类型系统的完善支持了泛型接口的默认方法实现但是还是不支持接口的泛型默认方法实现因为这部分要对类型系统做很多的改动。COM 支持基本做完了因此现在的 Native AOT 已经可以成功编译和运行 winforms 程序了需要 COM WrapperWPF、WinUI 和 UWP 也在实验中但是 WPF 涉及到 C/CLI这部分无法静态链接进去不太可能获得 Native AOT。泛型虚方法懒实例化GVM Instantiation不需要在编译的时候就实例化所有的泛型虚方法而是留在运行时第一次调用时来做这么做不仅不会损失性能而且还能节省大量的编译后体积并避免泛型虚方法递归实例化导致的编译时无限递归展开问题。但是并没有完全解决无限泛型递归的问题由于并行编译没法使用强联通分量算法进行检测。支持了动态调用标注然后对 .NET 6 的 BCL 进行了标注因此大多数情况即使基础库某些方法里用到了反射创建类型也不会出现运行时找不到代码的问题因为框架自己做了标注编译的时候编译器就能知道并生成代码而无需人工编写大量的 rd.xml 标注信息。目前正在添加托管类型系统对静态虚方法的支持已有 PR。目前正在添加对 PS4/PS5 等平台的支持缓慢进展可以运行起来简单程序了。目前正在添加对 WASM 平台的支持缓慢进展可以运行起来简单程序了。支持了 ARM64 平台。支持了静态链接依赖项。支持使用 .NET 6 的静态 PGO 数据做优化编译。编译速度的改善也是能明显看得到的以前的旧版本 CoreRT 编译个程序动辄十分钟半小时现在基本半分钟一分钟都能搞定。2021/8/12 更新正在添加对 ARMv7 平台的支持已有 PR正在添加对接口泛型方法默认实现的支持已有 PR2021/8/14 更新接口泛型方法默认实现已支持因此 efcore 可以用 NativeAOT 了泛型虚拟方法解析速度有所提升大概 8%编译时间更短了2021/8/17 更新NativeAOT 在 .NET 6 上计划的内容已经完成已经可以稳定使用另外可能会在 .NET 7 脱离实验正式发布ARMv7 平台支持已接近完成2021/8/24 更新NativeAOT 编译器版本已提升至 7.0.0-*2021/9/6 更新正在适配安卓LLVM 从 6 升级到 12完善 IDynamicInterfaceCastable 支持对 COM 的支持度进一步改善2021/9/17 更新支持了模块初始化器正在添加对 x86 的支持2021/12/6 更新Native AOT 转正正式提上 .NET 7 计划2021/12/15 更新Native AOT 代码正式合并入 .NET 主线并启用了构建无限泛型展开导致无法编译的问题已经解决2022/3/17 更新 1. 正式在.NET 7 Preview 2博客文章中宣布可用。 2. WPF 开始了 AOT 改造: https://github.com/dotnet/wpf/pull/6171