Visual Studio의 계측(C#, Visual Basic, C++, F#)
이 문서에서는 정확한 호출 수 및 호출 시간을 수집하는 데 사용되는 Visual Studio의 계측 도구에 대해 설명합니다.
계측에는 두 가지 유형이 있습니다:
프로그램 파일을 실행하기 전에 수정하는 정적(VSInstr)
동적- 파일을 변경하지 않는 동적 프로세스를 사용합니다. 메모리에 파일을 로드한 다음, 수정하여 계측 정보를 수집합니다. 동적 계측 도구를 사용하면 프로그램의 작은 부분에 대해 보다 정확한 정보를 얻을 수 있습니다. 코드의 작은 섹션을 조사할 수 있습니다.
동적 계측은 다음과 같은 이유로 유용합니다.
정적 계측은 강력한 이름 서명을 중단합니다. 동적 계측에서는 런타임에 계측이 수행되므로 이 문제를 방지할 수 있습니다.
정적 계측을 사용하면 파일을 특정 순서로 배포해야 하며 도구에서 파일이 어디에 있는지 알 수 없습니다. VSInstr를 수동으로 실행해야 합니다. 새 계측 도구를 사용하면 파일을 찾을 필요가 없습니다. 복잡한 프로그램에서 모든 파일을 찾는 것은 어려운 수동 프로세스가 될 수 있습니다.
계측과 샘플링 비교
프로파일링에는 데이터를 수집하는 두 가지 메커니즘이 있습니다. 샘플링을 사용하여 계측 또는 컬렉션을 사용하여 수집합니다. 자세한 내용은 성능 수집 방법의 이해를 참조하세요.
동적 계측 도구
계측 - Visual Studio 2022 버전 17.5부터 계측 도구는 .NET Core, .NET 5 이상 및 .NET Framework에 대한 동적 계측을 제공합니다. 이 도구는 계측 시나리오에 가장 적합한 성능을 제공합니다. 성능 프로파일러(Alt + F2)를 사용하여 이 도구에 액세스합니다. 자세한 내용은 다음 문서를 참조하세요.
Visual Studio 2022 버전 17.6부터 계측 도구는 C/C++도 지원하지만 VSInstr(정적 계측)을 사용합니다.
명령줄에서 이 도구를 사용하려면 다음 문서를 참조하세요.
계측 - Visual Studio 2019 버전 16.9부터 계측 도구는 .NET Core, .NET 5+ 및 .NET Framework(C/C++ 아님)에 대한 동적 계측 기능을 제공합니다. 이 도구는 동적 계측을 지원하는 VSInstr.exe 버전을 사용합니다. 성능 프로파일러(Alt + F2)를 사용하여 이 도구에 액세스합니다. DLL의 경우 VSInstr(명령줄 도구)을 대신 사용해야 합니다.
정적 계측 도구
VSInstr - Visual Studio 2022 버전 17.6부터 계측 도구는 C/C++의 지원을 위해 VSInstr을 사용합니다. VSInstr은 명령줄 시나리오에도 사용되며 .NET Framework 및 C/C++ 앱에서 작동합니다. 자세한 내용은 다음 문서를 참조하세요.