나는 오랜 시간 동안 실행될 백그라운드 프로그램에서 일하고 있으며 디버깅 할 때 실시간으로 모니터링하기 위해 일부 값을 주기적으로 공급할 외부 로깅 프로그램 (SmartInspect)이 있습니다.C# 프로그램은 어떻게 든 자체 CPU 사용을 측정 할 수 있습니까?
저는 작업 관리자 나 IARSN TaskInfo와 같은 여러 프로그램을 간단하게 실행할 수 있습니다. 그러나이 경우 자신 만의 프로그램에 모든 것을 보관하고 싶습니다. 프로그램이 X % CPU 이상을 사용하면 로그에 플래그를 지정하십시오.
나는이 스레드의 합리적 정확한 측정을 얻을 수 있도록
이 가능 주기적 등 메모리 사용량, 작업 집합, 같은 SmartInspect 몇 가지 통계를 공급하는 백그라운드 스레드를 얼마나 컴퓨터의 CPU 자원의 그것은 소비합니까? 주 프로그램은 단일 스레드 응용 프로그램 (통계를 기록하는 워치 독 스레드 제외)입니다. 따라서 기술이 으로 제한되는 경우 단일 스레드에서 얼마만큼을 사용합니까? 이렇게하면 좋을 것입니다.
리눅스 및 C 용 rusage과 관련된 몇 가지 항목을 발견했습니다.이 용도로 사용할 수있는 비슷한 것이 있습니까?
편집 : 좋아, 성능 카운터 방법을 시도하지만, GC-데이터라고 할 때마다 꽤 많이 추가, 그래서 메모리 사용 및 가비지 컬렉션에 대한 그래프는 급증. 나는이 부분을 지금 당장 떠날 것 같다.
이것은 훨씬 효과적이었고 GC에 많은 압박을 가하지는 않았지만 약간 증가했습니다. 감사! –
@axk이 기사는 사용 가능한 것 같지 않습니다. 현재 프로세서 부분 만 검색하는 방법을 나타내는 대답을 완성 할 수 있습니까? – J4N