2017-05-01 11 views
0

.NET 프레임 워크는 JIT 컴파일러가 메소드를 컴파일하는 데 걸리는 시간을 대략 측정 할 수있는 API를 제공합니까?메소드의 JIT 컴파일에서 CLR이 소요 한 시간을 어떻게 측정 할 수 있습니까?

현재 도움이 되긴하지만 더 만족스럽고 신뢰할 수있는 방법을 원하고 있지만 다음과 같은 조합을 사용합니다.

  1. 프로필 구문을 메소드의 시작과 끝 부분에 쓰고 시간을 처음으로 실행합니다.

    그런 다음 다시 실행 시간의 차이점을 기록합니다.

    그러나 이것은 순수한 함수 인 순수한 계산 방법에만 유용합니다. 모든 종류의 부작용이 이러한 측정을 어떤 식 으로든 왜곡 할 수 있습니다.

  2. 위의 성능 카운터는 .NET CLR Jit입니다.

+1

예. 프로파일 링은 [프로파일 러] (https://msdn.microsoft.com/en-us/library/ms230818(v=vs.110) .aspx)의 작업입니다. 그건 다됐다. –

+0

@HansPassant 대단히 감사합니다. –

답변

0

Microsoft CLRProfiler의 소스 코드는 here에서 다운로드 할 수 있습니다.

프로파일 러는 프로파일 링을 위해 JITCompilationStart/JITCompilationFinished 메소드를 사용합니다. 코드를 확인하고 필요한 경우 확장 할 수 있습니다.

+1

고맙습니다. 네, 어리석은 나. CLR Profiler를 다른 상용 제품과 함께 사용해 왔습니다. 원래의 질문에 한스가 한 말은 내가 나무 숲을 놓치고 있다는 것을 깨닫게했다. –