发布时间:2025-05-30
浏览次数:0
Mono 4.0版本的发布说明草案已经递交,其中包含的众多更新中,一个值得关注的细节是Mono开发团队已开始引入微软项目中的原始代码。
让我们进一步明确,实际上微软已经发布了三套采用MIT授权模式的源代码库。
项目尚未达到完全稳定的水平,所以Mono团队目前主要集中精力在处理项目内部的代码部分。他们的近期计划是,将Mono项目内存在bug或尚未完成的模块,逐步替换为.NET版本的相应代码。你可以通过访问官方网站来了解该项目的最新进展。
除了类别之外,该命名空间内的代码部分同样已全部替换成了项目自身的源代码。
.
..
..
..
.
..
..
.Linq
.Linq.
.Text.
..
..Tasks
其他命名空间内,同样有多类源代码被纳入了Mono项目的集成之中。
不再支持的特性
Mono将停止对生成.NET 4.0或更早版本程序集的支持codejock xtremetoolkitpro,后续版本仅限于.NET 4.5及移动档案格式。这一调整引发了使用Unity进行开发的用户们的担忧,因为目前Unity的开发工作仍需依赖某个早期版本的Mono对.NET 3.5的兼容性实现。
新版本将不再提供对NuGet下载的EF版本的“内置支持”,这主要是因为绝大多数用户更倾向于使用这种方式进行开发。与此情形相仿,Mono平台也将停止提供自家的驱动程序。
性能优化
在此之前,Mono在处理浮点数时,默认采用的是最高精度模式。尽管采用64位算法来执行32位浮点数的运算也是可行的,然而,这种方法对性能产生了一定的负面影响。鉴于此,新版本中增设了一个功能选项,允许用户选择执行32位计算。
内联方法亦有所提升。目前,我们已能对至多8个机器字长的数据结构拷贝实现内联处理,相较之前codejock xtremetoolkitpro,此前仅能支持至多5个机器字长。对于超过8个字长的数值,操作仍需借助指令来完成。
此外,对于原子操作的运行方式也有某些地方进行了变更。
目前,JIT技术能够识别框架内的所有原子方法,并将其视为内置方法进行内联处理,这一特性对平台内某些特定代码功能的实现大有裨益。这些方法涵盖了与“和”相关的所有方法,以及类中包含的“、”和“方法”。
在x86和64位架构的计算机中,我们采用了指令来实现,而非采用lock add rsp,0指令。同时,我们还运用了xchg [dst], val指令,摒弃了之前那种较为低效的lock [dst], val循环操作方式。
针对那些采用获取/释放语法的原子操作,我们将专门为它们设计内存屏障,而非采取过于严苛的顺序一致性策略。
若您希望对本文发表看法,或是想了解其他读者有何见解,请点击“阅读原文”加入我们的讨论行列。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码