.NET 性能优化的技巧
发布时间:2019-08-22 07:06:14 所属栏目:建站 来源:gejigeji
导读:副标题#e# 最大化内联 内联是将方法体(method body)复制到调用站点的技术,这样我们就可以避免跳转、参数传递和寄存器保存/恢复等繁琐过程。除了节省这些之外,内联还是实现其他优化的必要条件。 不不过Roslyn(C#的编译器)没有内联代码,它是通过JIT实现的
Roslyn有时需要做一些工作来保证一些语言不变量,当结构存储在只读字段中时,编译器将插入一些指令,以避免复制该字段,然后再将其包含到任何能保证不会对其进行修改的操作中。通常,这意味着调用在结构类型本身上定义的方法,因为将结构作为参数传递给在另一类型上定义的方法已经需要将结构复制到堆栈上(除非通过ref或in传递)。 如果将 有时,如果你无法将其定义为只读结构,则最好在其他不可变结构字段上省略readonly修饰符。 以Jon Skeet的NodaTime库为例,在这个示例中,Jon使大多数结构变为只读,因此能够将readonly修饰符添加到包含这些结构的字段中,而不会对性能产生负面影响。 减少分支和分支错误预测 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |