首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个.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。

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

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

2、缩短启动时间;

3、减少内存需求。

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

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

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

AOT目前有以下限制:

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

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

3、不支持C++/CLI;

4、不支持COM组件;

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

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

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O4s5K_zzxi2coApY4BnMFHIw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券