初探.NET8 NativeAOT(一)

2023-11-25  本文已影响0人  ChenReal

一、前言

不久前.NET8正式登场,据说有1000多项的优化,被誉为史上最快的.NET。(废话如果是最慢还敢拿出来献丑,早就被喷子们喷回姥姥家了。)

其中,NativeAOT作为备受关注的功能,自然也备受了我的关注。半年前我在博客文章《浅尝.NET7 NativeAOT》中,立下了一个灰太狼式的Flag:我还会回来的!等.NET8出道的那天。

于是,今天兑现我的诺言,卷.NET8再来!

二、实践

我决定还是由浅入深,第一波实践还是从最最最简单的“Hello World”开始。大家没意见吧?(有意见我也听不到,哈哈)

1、Windows环境

打开最新版的Visual Studio,创建一个Console项目。发现向导窗口多了一个AOT的选项,M$做的很贴心,只需要在这里钩上就可以自动在工程文件上增加AOT的配置。


VS选项

接着,发布打包应用,其指令跟.NET7一模一样:

dotnet publish DemoAot.csproj -o pub\ -c Release -r win-x64

打包出来的执行文件大约1.2M,记得.NET7的时候是2.5M。正好少了一半,与官方宣传的吻合,没有虚标。

2、Linux环境

因为Debian11环境下没有Visual Studio的加持,所以只能用命令行创建一个项目来做测试了。

https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-linux-x64-binaries

#解压安装
tar zxf dotnet-sdk-8.0.100-linux-x64.tar.gz -C /usr/local/share/dotnet
#看看SDK是否安装成功
dotnet --list-sdks
dotnet new console

-打包发布
发布打包应用的指令也没变一样:

dotnet publish DemoAot.csproj -o $PWD/pub -c Release -r linux-x64

打包出来的执行文件大约1.5M,.NET7的时候是3.77M。Wow,更上一头牛了!

3、MacOS环境

现在MacOS如同被抛弃的孩子一样,跟只能像Linux一样的操作了。

https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-macos-x64-binaries

#解压安装
tar zxf dotnet-sdk-8.0.100-osx-x64.tar.gz -C /usr/local/share/dotnet
#看看SDK是否安装成功
dotnet --list-sdks

注意,以上安装过程。是操作系统已经有.NET6或.NET7的SDK为前提的,如果没有那么请参考官方文档。抄我的未必行。

dotnet new console

修改工程文件,增加PublishAot,完了执行脚本打包:

dotnet publish DemoAot.csproj -o $PWD/pub -c Release -r osx-x64

打包出来的执行文件大约1.69M,.NET7的时候是8M。优秀!

总结

预告

“Hello World”测试大获成功,接下来我准备找一个代码量较大的现役工具应用,来一波NativeAOT化。敬请关注吧。

上一篇 下一篇

猜你喜欢

热点阅读