短指令有更好的性能吗?
Do short instructions have better performance?
我真的需要关心在哪里可以发出 .s
指令吗?或者它只会影响尺寸但实际性能会相同吗?
生成的 dll 也将用于 AOT 平台。对于带 .s
和不带 .s
的 IL,生成的 AOT-ed dll 是否相同?
我的意思是 br.s
、ldloca.s
等..
视情况而定。 .s
(以及像 ldc.i4.1
这样的包含文字的操作码)的主要目的只是为了减少代码的大小,减少方法大小的好处是可以内联从调用方法的 CIL 生成本机代码时的方法(x86 抖动的限制是 32 字节的 IL)。因此在这种情况下,如果在内联候选方法中使用短指令,则可以提高应用程序的性能。
否则,由于执行的不是 CIL,短操作码和普通操作码生成的机器代码应该是相同的(并且尽可能优化)本机代码。
我真的需要关心在哪里可以发出 .s
指令吗?或者它只会影响尺寸但实际性能会相同吗?
生成的 dll 也将用于 AOT 平台。对于带 .s
和不带 .s
的 IL,生成的 AOT-ed dll 是否相同?
我的意思是 br.s
、ldloca.s
等..
视情况而定。 .s
(以及像 ldc.i4.1
这样的包含文字的操作码)的主要目的只是为了减少代码的大小,减少方法大小的好处是可以内联从调用方法的 CIL 生成本机代码时的方法(x86 抖动的限制是 32 字节的 IL)。因此在这种情况下,如果在内联候选方法中使用短指令,则可以提高应用程序的性能。
否则,由于执行的不是 CIL,短操作码和普通操作码生成的机器代码应该是相同的(并且尽可能优化)本机代码。