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

更多开源项目请查看:一个专注推荐.Net开源项目的榜单

我是编程乐趣,一个.Net开发经验老程序员,欢迎“关注”我,每天为你分享开源项目和编程知识。
也欢迎加入【.Net技术编程交流社区】,和大家共同学习交流!,点击加入https://bbs.csdn.net/topics/613465368

- End -

推荐阅读

Ocelot:.NET开源API网关提供路由管理、服务发现、鉴权限流等功能

基于.Net开源Html解析器,此外还支持SVG、XML等格式

一个C#跨平台的机器视觉和机器学习的开源库

基于.Net开源Html解析器,此外还支持SVG、XML等格式

一款针对EF Core轻量级分表分库、读写分离的开源项目

猜你喜欢

转载自blog.csdn.net/daremeself/article/details/134493561