.NET7.0剛發布不久,.NET社區開始了.NET8.0的開發,重心重新回到了新功能的迭代。
我們知道在.NET7.0中一個令人激動的特新就是支持了NativeAOT,我們可以通過NativeAOT生成本機程序,由于無需JIT編譯,所以無需安裝.NET Runtime,也進一步的提升了.程序的啟動速度,降低了程序的體積,在客戶端軟件開發、ServerLess等場景會有不錯的前景。關于NativeAOT發布的詳情可以點下方鏈接:
https://learn.microsoft.com/zh-cn/dotnet/core/deploying/native-aot/
作為地表最強的.NET WEB服務器ASP.NET Core,自然也是支持NativeAOT編譯,而今天就是為大家介紹關于.NET8.0中ASP.NET Core中計劃的一些NativeAOT改進。
.NET 7引入了對將.NET控制臺項目作為本地AOT發布的支持,產生了一個獨立的、針對平臺的可執行文件,沒有任何運行時JIT。本地AOT應用程序啟動非???而且使用的內存更少。該應用程序可以被部署到沒有安裝任何.NET運行時的機器或容器中。在.NET 8中,我們將把對本地AOT的支持擴展到ASP.NET Core,首先是以云為重點,用最小的API構建的API應用程序,滿足關于發布文件大小、啟動時間、工作集和吞吐性能的期望。
如前所述,.NET8.0的主要重點是使用Minimal APIs實現ASP.NET Core API應用程序的本地AOT發布。這里的 "支持本地AOT"是指確保項目能夠通過<PublishAOT>
項目屬性啟用本地AOT發布,并且由此產生的開發經驗能夠引導開發人員制作本地AOT發布的應用程序,而不會出現構建、發布或運行時警告和錯誤。這意味著ASP.NET Core和.NET的大多數基礎功能領域都需要更新,以支持本地AOT,包括:
此外,作為一個次要目標,我們將在實現以下功能領域的NativeAOT發布方面取得進展:
以下功能領域暫時不在NativeAOT支持的范圍內:
本地AOT有一些限制,這意味著在發布本地AOT時不支持.NET中的某些API和代碼模式。這些包括依賴運行時JIT的功能,如動態代碼生成和編譯、匯編加載等,以及導致代碼被本地AOT編譯過程修剪掉的模式,這些都是執行應用程序所需要的,導致運行時失敗。
在為ASP.NET Core增加對本地AOT的支持時,我們必須確保開發體驗是這樣的:開發人員可以合理地確定他們的應用程序在發布為本地AOT后將如何運行。如果當前的API和功能的設計方式與原生AOT不兼容,我們將利用包括源碼生成器、分析器和代碼修復器在內的工具,讓現有的API與NativeAOT協同工作,或者讓開發者以合理的方式更新他們的應用程序與NativeAOT協同工作。
這項工作的第一階段是使用新的項目模板創建ASP.NET Core API項目,啟用本地AOT,可以在沒有任何警告或錯誤的情況下構建、發布和運行,并且滿足可執行文件大小、啟動時間、工作集和吞吐量的定義指標。
這些指標主要以Linux為重點,因為它是主要的部署目標,但Windows和macOS上的大小仍將被跟蹤,并與這些目標保持一致,因為在候選平臺調查期間,它往往有助于感知。
這里的 "默認"是指與基于CoreCLR的應用程序部署的默認配置相比,例如包括分層JIT。
第二階段建立在第一階段的基礎上,使更多的"真實世界"的ASP.NET Core API應用程序成為本地AOT發布。這些應用程序將使用更多通常與在云環境中運行API應用程序有關的功能,包括AuthN/Z、數據訪問、OpenTelemetry等。TrimmedTodo API應用程序將作為這種應用程序的最初例子。
這些主要是以Linux為重點,因為這是主要的部署目標,但在Windows和macOS上的大小仍將被跟蹤,并與這些目標保持一致,因為它往往有助于在候選平臺調查中的感知。
我們從.NET社區最新的計劃可以看出,ASP.NET Core將繼續在云原生場景發力,通過支持NativeAOT來降低可執行文件大小、縮短啟動時間降低內存占用,筆者本人是非常期待這樣的更新,在之前筆者的文章AOT和單文件發布對程序性能的影響中測試了.NET6.0時代ASP.NET Core AOT的的一些數據,后面.NET8.0發布以后期待它的改進。
以下是.NET6.0 ASP.NET Core AOT的數據:
Github對應鏈接:https://github.com/dotnet/aspnetcore/issues/45910
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
chinaren郵箱怎么登陸?中國人的郵件屬于搜狐的校友名單。你可以登錄搜狐網站上的校友名單,這是中國人的地址。輸入校友名單后,您可以在個人信息欄中找到您的ChinaRen電子郵件,然后單擊進入。如何看待張朝陽推出的搜狐熟人社交產品“狐友”?它會成功嗎?我想你會失敗100%。原因很簡單。社交網絡比其他領域更困難。今天,騰訊和Momo取得了成功。他們分別控制熟人和陌生人的社交網絡。其他玩家很難分得一...
ipad 2018怎么安裝軟件?這款設備自帶app store,打開就可以下載軟件。ipad如何取消安裝app密碼?以下方法可以取消密碼安裝:1.在iPad設置中找到您的個人Apple ID,然后選擇[媒體和購買項目]。2.在賬戶設置中找到左上角的頭像,選擇【密碼設置】。3.點擊【需要密碼】右側的開關關閉。ipad怎么安裝apk文件?無法安裝!IPad罐 不要安裝apk格式的安卓應用。IPad搭...
qq群投票怎么看誰沒有投?1.打開 group,登錄您的帳戶并選擇聯系人,然后在聯系人中選擇您的群組。2.進入你建的群后,點擊右上角兩個小人標志的圖標。進入群組設置。3.進入群組管理后,選擇群組投票功能選項。你發起了這里所有的投票。4.找到您想要查看投票結果的投票選項,點擊查看投票結果。5.在這個投票選項中,您可以看到誰投了票以及每個選項獲得了多少票。6.單擊每個選項,您可以在此處看到誰投票支持該...