点击上方蓝字 江湖评谈设为关注/星标
前言
.NET9作为一个STS版本,其完善度超过了.NET8。由于工作项相关,.NET9每次变动都需要关注其新特性,参与了解其背后的原理和评估。较熟悉版本的差异化所在,本篇简略看下。参考文章如下:
6.NET9 PreView6 RyuJIT代码布局改进(HIR)
现代化的.NET
.NET9是最新的版本,从PreView1到如今的PreView6进行大范围的更新,以便于适应现代化的开发需求。
比如PreView3进行了泛型运行时内联共享,修改了CLR的异常处理。PreView4新增了UnsafeAccessor泛型,PreView6进行了硬件代码内部改进和代码布局优化等等。
而这里面最引人瞩目的即是.NET9 PreView5里面增强了对于人工智能的支持,多维数组的扩展(意即:张量。它是人工智能 (AI) 的基石数据结构)。
总结下如今现代化.NET能进行如下处理:
1.人工智能:内置张量计算,能够高效处理神经网络,权重信息,中间计算,广泛应用于图像,视频,音频,文本序列,编码数据等。
2.代码布局:老式代码(.NET8 Before)的内存顺序某些方面考虑不周,导致了性能的瓶颈。新版本则是进行了重新布局(主要是BB和IR/HR方向),其中精确到bit深层次的内存控制,丝滑的展现了什么叫做极致的性能优化。关于这点,本公众号(jianghupt)有很多表述,可以参考之前的文章。
3.逆向工程:逆向的水平,体现了一个程序员的基础性,计算机底层技术功力深厚度。.NET9运行时的复杂度和规模度,上可玩OOP级别的托管代码,下可玩原生0和1的强力操控。(最近利用底层技术,逆向了一个经常玩的游戏梦三国2,感兴趣的小伙伴可以B站搜索:江湖评谈。即可看到逆向hook到角色的永生不灭的效果)。
4.其它方面,比如云原生,游戏,工控,web等等常规应用这里不再赘述,之前既有。
版本的缺点
上面提了优点,自然也要提下缺点,兼听则明嘛。.NET6/7/8这三个版本有一个持久性的漏洞,可以提权你的计算机进行后台攻击。而.NET9则没有,另国内的生态位急需恢复,以及.NET固有印象需要改变。杂音较多,比如不跨平台/只能运行在windows下等等,依然需要改变。
往期精彩回顾