다른 레지스트리 항목 만들기
애플리케이션의 성능 키 만들기에 설명된 대로 성능 카운터 데이터를 제공하는 구성 요소에는 서비스 키 아래에 성능 키가 있어야 하며 성능 키에는 라이브러리, 열기, 수집 및 닫기 값이 포함되어야 합니다. 경우에 따라 구성 요소가 추가 레지스트리 값을 구성해야 할 수 있습니다.
메타데이터
MetadataGlobal
및 MetadataCostly
는 Windows 10 20H1 이상에서 생성된 메타데이터 전용 쿼리입니다. 사용자가 잠재적으로 비용이 많이 드는 데이터 수집을 수행하지 않고 메타데이터(개체 정보 및 카운터 정보)를 가져올 수 있습니다. 메타데이터 전용 쿼리는 (다중 instance 개체의 경우) 또는 (단일 instance 개체의 경우)로 설정 PERF_METADATA_MULTIPLE_INSTANCES
해야 하며 결과는 모든 PERF_INSTANCE_DEFINITION
블록을 생략해야 한다는 점을 제외하고 NumInstances
해당 Global
또는 Costly
PERF_METADATA_NO_INSTANCES
쿼리와 동일한 결과를 반환해야 합니다.
성능 DLL이 및 MetadataCostly
쿼리 형식을 MetadataGlobal
지원하는 경우 키에 값을 추가하고 REG_DWORD
값을 Collect Supports Metadata
Performance
1로 설정하여 이를 나타내야 합니다. 가 없거나 0으로 설정된 경우 Collect Supports Metadata
메타데이터 전용 쿼리는 또는 Costly
쿼리로 Global
대체됩니다.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Collect Supports Metadata = 1
링크
성능 DLL의 OpenPerformanceData 함수는 문자열 인수를 입력으로 사용합니다. 열린 함수에 입력 문자열을 제공하려면 서비스 키 아래에 Linkage 키를 포함합니다. Linkage 키에는 내보내기 값이 포함됩니다. 내보내기 값 데이터를 open 함수에 전달하려는 입력 문자열로 설정합니다. 내보내기의 데이터 형식이 REG_MULTI_SZ.
내보내기를 정의하지 않은 경우(내보내기는 선택 사항) 시스템은 OpenPerformanceData 함수에 NULL을 전달합니다.
일반적으로 둘 이상의 애플리케이션이 동일한 성능 DLL을 공유하는 경우 각 애플리케이션에는 DLL을 호출하는 애플리케이션에 대한 컨텍스트를 제공하는 Linkage 키 및 내보내기 값이 포함됩니다.
다음은 레지스트리 항목을 보여줍니다.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name-1
\Linkage
Export = app-1 context strings
\Performance
Library = perfctrs.dll
\application-name-2
\Linkage
Export = app-2 context strings
\Performance
Library = perfctrs.dll
제한 시간
기본적으로 성능 DLL의 OpenPerformanceData 및 CollectPerformanceData 함수는 10,000밀리초 이내에 반환되어야 합니다. 그렇지 않은 경우 시스템은 DLL이 반환하는 데이터를 사용하지 않습니다. 애플리케이션은 다음 예제와 같이 성능 키 아래에 Open Timeout 또는 Collect Timeout 레지스트리 값을 지정하여 시간 제한 값을 늘리거나 줄일 수 있습니다.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Open Timeout = Timeout value for your open function, in milliseconds
Collect Timeout = Timeout value for your collect function, in milliseconds
DOS 디바이스
일부 애플리케이션( DeviceIoControl 함수를 사용하여 카운터를 반환하는 애플리케이션)에 대한 성능 데이터를 가져오려면 CreateFile 함수를 사용하여 애플리케이션과 연결된 디바이스를 열어야 합니다. 이 경우 다음과 같이 CreateFile 에 지정된 이름이 레지스트리의 DOS 디바이스 노드에도 설치되어야 합니다.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\Session Manager
\DOS Devices