C#中的[MethodImpl(MethodImplOptions.NoInlining)]方法属性如何影响使用数组时的性能?

Ost*_*tap 4 .net performance attributes

[MethodImpl(MethodImplOptions.NoInlining)]使用数组时,C#中的方法属性如何影响性能?

我有一个方法,它遍历int[][]-锯齿状数组。不论是否具有此属性,性能评估都具有相同的效果。

处理锯齿数组时,内联是否应该有所改善?

Han*_*ant 5

迭代二维数组通常会很昂贵,足以掩盖单个方法调用的开销。并有可能即使没有属性也不会内联该方法,只是因为机器代码太多。

但是,看看。工具+选项,调试,常规,取消选中“抑制模块加载时的JIT优化”。选择发布版本。在方法调用上设置一个断点并运行。中断时,右键单击源代码,然后单击转到反汇编。如果您看到呼叫指令,则该指令不会内联。如果该方法带有参数,则可能在调用之前看到一些机器代码。