다음을 통해 공유


성능 카운터의 새로운 기능

이 섹션에서는 각 릴리스의 성능 카운터에 추가된 새로운 기능에 대해 설명합니다.

Windows 10 20H1

레지스트리에서 직접 성능 데이터를 읽는 경우 이제 사용 가능한 성능 개체 및 카운터 목록을 만들 때 불필요한 작업을 방지하기 위해 메타데이터 전용 컬렉션을 수행할 수 있습니다. 쿼리에서 대신 Global 를 사용하는 MetadataGlobal 경우 모든 메타데이터 사용 공급자 DLL은 데이터 수집 단계를 건너뛰어 프로세스 또는 스레드가 많은 시스템에서 쿼리 성능을 향상시킬 수 있습니다. 메타데이터를 사용하도록 설정되지 않은 공급자 DLL은 이전과 같이 계속 작동합니다.

성능 DLL을 사용하여 성능 데이터를 제공하는 경우 불필요한 데이터 수집을 방지하기 위해 메타데이터 전용 컬렉션에 대한 지원을 구현할 수 있습니다. Collect 응답하도록 MetadataGlobal 함수를 업데이트하고 MetadataCostly 메타데이터만 사용하여 쿼리한 다음(응답에서 모든 PERF_INSTANCE_DEFINITION 블록을 사용 PERF_METADATA_NO_INSTANCES 하거나 PERF_METADATA_MULTIPLE_INSTANCESNumInstances 생략) 값이 1인 레지스트리 값을 REG_DWORD 서비스의 Performance 하위 키에 추가 Collect Supports Metadata 합니다.

Windows 7 및 Windows Server 2008 R2

코드 생성을 개선하고 간소화하기 위해 CTRPP 도구가 변경되었습니다. 이제 도구는 헤더 및 리소스 파일만 생성합니다. 이전 코드 생성 동작(권장되지 않음)을 원하는 경우 새 -legacy 인수를 사용할 수 있습니다.

  • 이제 헤더 및 -rc 리소스 파일의 이름과 위치를 각각 지정하는 새 -o 및 인수를 지정해야 합니다.
  • 선택적 새 -prefix 인수를 사용하여 생성된 헤더 파일에 정의된 전역 변수 및 함수의 시작 부분에 추가할 문자열을 지정할 수 있습니다.
  • 카운터 매니페스트를 업데이트해야 하는 경우 새 코드 생성을 사용하면 콜백이 생성된 코드에 더 이상 포함되지 않으므로 이전 콜백 구현을 새로 생성된 코드와 병합할 필요가 없습니다.

symbol 특성은 다음 매니페스트 요소에 사용할 수 있습니다.

특성은 symbolprovidercounterSet에 필요하며 카운터의 경우 선택 사항입니다. 특성을 사용하면 공급자 함수를 호출할 때 각 요소를 참조하는 데 사용할 수 있는 기호 이름을 제공할 수 있습니다(예: PerfCreateInstance를 호출할 때 카운터 집합 기호 이름을 사용할 수 있습니다).

Windows Vista

카운터 데이터를 제공하기 위한 성능 카운터 아키텍처는 이 릴리스에서 완전히 변경되었습니다.

이전에는 INI 파일을 사용하여 카운터 데이터를 정의했으며 소비자가 요청할 때 데이터를 제공하기 위해 소비자 프로세스에서 실행되는 성능 DLL을 구현했습니다. 이 아키텍처는 더 이상 사용되지 않으며 중요한 성능 및 안정성 문제로 인해 새 코드에는 권장되지 않습니다.

새 아키텍처는 매니페스트를 사용하여 카운터 데이터를 정의하고 공급자 프로세스에서 코드를 실행하여 소비자가 요청할 때 데이터를 제공합니다. 자세한 내용은 버전 2.0을 사용하여 카운터 데이터 제공을 참조하세요.

이 릴리스에 대해 다음 함수가 추가되었습니다.

이 릴리스에 대해 다음 구조가 추가되었습니다.

매니페스트에서 카운터를 정의하는 데 사용하는 XML 요소 목록은 성능 카운터 스키마를 참조하세요.

매니페스트를 구문 분석하고 공급자의 시작점으로 사용하는 코드를 생성하는 CTRPP 사전 프로세서 도구에 대한 자세한 내용은 CTRPP를 참조하세요.