gpt4 book ai didi

.net - .NET CLR是否可以自动内联属性?

转载 作者:行者123 更新时间:2023-12-04 05:11:06 28 4
gpt4 key购买 nike

.NET CLR运行时是否知道如何在运行时优化/内联简单属性 getter ?例如:

property int Length { get; set; }

一旦在运行时JIT完成,它将执行“Length__get”功能(为其构建堆栈,跳转以执行代码等)吗?还是抖动很聪明,并且知道可以将其重写为类字段访问?

最佳答案

是的,在“正常”情况下,CLR将内联。但是,在某些情况下不会进行内联-包括从MarshalByRefObject派生的任何内容(因为它可能是运行时代理)。

内联的规则取决于您使用的确切CLR-x64与x86,版本等。琐碎的属性与您可能会内联的可能性差不多:)

(出于某种原因,过去我发现琐碎的属性要比字段访问慢一些,因为对于大于 native 字大小的值,可能存在一些限制。)

关于.net - .NET CLR是否可以自动内联属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188139/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com