我是否真的需要关注可以发出.s
指令的位置?或者它只会影响尺寸,但真正的性能会是一样的吗?
生成的dll也将用于 AOT 平台。对于具有.s
且没有?
我的意思是br.s
,ldloca.s
等等。
答案 0 :(得分:1)
这取决于。 .s
(以及包含文字的操作码,如ldc.i4.1
)的主要目的只是为了减小代码的大小,减小方法大小的优点是可以内联从调用方法的CIL生成本机代码时的方法(x86抖动的限制是IL的32个字节)。因此,在这种情况下,如果在内联候选方法中使用简短指令可以提高应用程序的性能。
否则,由于它不是CIL执行的,因此短代码和普通代码生成的机器代码应该是相同的(并且在可能的情况下也会优化)本机代码。