一个.Net 8最牛逼和最受欢迎关注的功能!

这次.Net 8发布,更新了诸多功能,但从各个编程社区看到大家讨论和交流最多的,还是AOT这个功能。

AOT本身在.Net 7就开始引入了,但这次.Net 8做了诸多更新:

1、增加了macOS 平台的 x64 和 Arm64 体系结构的支持;

2、针对Linux做了极大的更新,应用程序可以缩小最多50%。

3、同时可以支持配置以大小优先,还是以性能优先的编译配置,大家可以根据自身项目需求做平衡选择。

ASP.NET Core也引入AOT的支持,但也不是所有功能都支持,MVC还不支持目前,支持最好的是Web API。

d9bea075a7ba13e0fe26b5eeebd4514c.png

针对ASP.NET Core主要做了如下优化:

1、减少发布文件大小:可缩小容器映像和缩短部署时间;

2、缩短启动时间;

3、减少内存需求。

从下图看,应用程序大小、内存大小、启动时间都获得大大的提升与优化。

58735d8ca180850a6cf9349afdfeb970.png

目前AOT在PC端支持最好:Windows、Liunx、macOS,移动平台还只是实验支持阶段,存在很多不预测问题,最好不要用于生产项目。

0cd92ba7479c50e309adae2cc337b08d.png

当然了,AOT也不是完全只有优点,没有缺点。

AOT目前有以下限制:

1、不支持动态加载,比如:Assembly.LoadFile;

2、不支持动态编译代码、动态类型创建、动态方法调用,比如:System.Reflection.Emit;

3、不支持C++/CLI;

4、不支持COM组件;

5、使用System.Linq.Expressions性能反而会下降;

6、当然还有更多细微的限制,在编译的时候VS会给出警告,编译的时候需要自行判断与处理。

总之,AOT还是一个非常牛逼的功能,但也不可随意使用,还是存在很多诸多兼容性的问题,项目上线必须保证完整、高质量的测试才行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值