Например:
Код 1:
void Main()
{
Console.WriteLine("Some texts");
}
Код 2:
void Main()
{
Foo();
}
void Foo()
{
Console.WriteLine("Some texts");
}
Код 2 работает медленнее, чем код 1? Хотя, когда мы создаем выпуск, JIT будет встроить код 2, поэтому код 2 будет работать так же быстро, как и код 1. Но когда я тестировал их с помощью LinqPad , я получил результат IL:
Код 1:
IL_0000: ldstr "Some texts"
IL_0005: call System.Console.WriteLine
Код 2:
IL_0000: ldarg.0
IL_0001: call UserQuery.Foo
Foo:
IL_0000: ldstr "Some texts"
IL_0005: call System.Console.WriteLine
IL_000A: ret
Как мы видим, результат IL в коде 2 содержит некоторые дополнительные шаги для вызова Foo (), доказывает ли это, что код 2 работает медленнее, чем код 1?