(MemoryDiagnoser)
public class MethodPerformanceBenchmark
{
int() integerArray = { 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 };
int NumberOfItems = 1000;
(Benchmark)
public void NonAggressive_InliningDemo()
{
for (int i = 0; i
Para executar o benchmark, execute a seguinte instrução no prompt de comando do Visual Studio.
dotnet run -p Method_Impl_Example.csproj -c Release
A Figura 1 abaixo mostra os resultados.
Figura 1: Os benefícios de desempenho de um método em C# podem ser substanciais.
Fundição
Como você pode ver, o desempenho da execução do método que foi inlinado é quase três vezes melhor que o método não enlatado.
Takeaways
Deve -se notar que usando o (MethodImpl(MethodImplOptions.AggressiveInlining)) O atributo em um método não garante o envolvimento do método. Ao usar esse atributo, você está especificando apenas para o compilador JIT que, se possível, o método deve ser inlinado. Em outras palavras, o atributo é apenas uma sugestão, não uma instrução. Por fim, o compilador JIT decidirá se o método será inlinado ou não.
