相关疑难解决方法(0)

为什么默认情况下不自动内联自动属性?

由于这些属性只是方法之下,可以理解的是,它们可能执行的任何逻辑的性能可能会或可能不会提高性能 - 因此JIT需要检查方法是否值得内联是可以理解的.

然而,自动属性(据我所知)不能有任何逻辑,只需返回或设置基础字段的值.据我所知,自动属性由编译器和JIT处理,就像任何其他方法一样.
(以下所有内容都依赖于上述段落正确的假设.)

值类型属性显示与变量本身不同的行为,但是参考类型属性应该具有与直接访问基础变量完全相同的行为.

// Automatic Properties Example
public Object MyObj { get; private set; }
Run Code Online (Sandbox Code Playgroud)

是否存在自动属性Reference Types可以通过内联显示性能受损的情况?
如果没有,是什么阻止编译器或JIT自动内联它们?

注意:我理解性能增益可能是微不足道的,特别是当JIT可能无论如何使用它时都可能内联它们 - 但是增益可能很小,似乎合乎逻辑的是,无论如何都会引入这种看似简单的优化.

c# compiler-construction jit inline

4
推荐指数
1
解决办法
1522
查看次数

标签 统计

c# ×1

compiler-construction ×1

inline ×1

jit ×1