:
코드 1 : 느린 코드 1 이상의통화 방법의 성능이 저하됩니까? 예를 들어
void Main()
{
Foo();
}
void Foo()
{
Console.WriteLine("Some texts");
}
않는 코드 2 실행 : 2
void Main()
{
Console.WriteLine("Some texts");
}
코드? 우리는 릴리스를 빌드 할 때 나는 비록 JIT는 그럼 코드 2는 코드 1로 빨리 실행 코드 2 인라인 것입니다하지만 LinqPad로를 테스트 할 때 나는 IL 결과를 얻었다 :
코드 1 :
IL_0000: ldstr "Some texts"
IL_0005: call System.Console.WriteLine
을
코드 2 : 우리는 코드 2의 IL 결과가 푸()를 호출하기위한 몇 가지 추가 단계가 볼 수 있듯이
IL_0000: ldarg.0
IL_0001: call UserQuery.Foo
Foo:
IL_0000: ldstr "Some texts"
IL_0005: call System.Console.WriteLine
IL_000A: ret
, 이것은 코드 1보다 느리게 그 코드 2 실행을 증명 하는가?
디버그 또는 릴리스 모드에서 실행 중이십니까? – Tudor
@ Tudor : [LinqPad] (http://www.linqpad.net/)에서 테스트했는데 어떤 모드가 실행되었는지 전혀 모른다. Visual Studio에서 IL 결과를 표시하는 방법이 있습니까? – JatSing
두 마리 있습니다. 당신은 더 빠른 것을 알고 싶습니다. (1) 빠른 속도로 인터넷에서 임의의 낯선 사람들에게 물어 보거나, (2) 말을 서로 경주하여 어느 것이 승리하는지 확인합니까? –