8
.NET 성능 카운터를 사용하여 특정 프로세스에 대한 CPU, 메모리 및 네트워크 사용량을 얻는 프로그램을 작성하고 있습니다.특정 프로세스의 네트워크 성능 모니터링
예를 들어, Explorer
의 CPU 및 메모리 데이터를 가져 오기 위해,이 같은 성능 카운터를 만들 :
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "% Processor Time";
PC.InstanceName = "Explorer";
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "Working Set - Private";
PC.InstanceName = "Explorer";
불행하게도, 내가 그것을위한 네트워크 사용량을 얻을 수 있습니다 프로세스 categoryName
에 대한 특성이없는 방법. 네트워크 인터페이스 categoryName
을 사용하여 특정 NIC에서 전반적인 네트워크 사용량을 얻을 수는 있지만 특정 프로세스와 격리 할 수는 없습니다.
이전에 비슷한 질문이있는 것처럼 보입니다. http : //stackoverflow.com/questions/438240/monitor-a-processs-network-usage – Dilshod
이것은 아키텍처 제한 사항입니다. 이 카운터는 네트워크 드라이버 스택에 의해 구현됩니다. 커널 모드에서 실행되는이 프로그램은 usermode 프로세스 인식 기능이 없습니다. FileSystemWatcher가 어떤 프로세스가 파일을 수정했는지 알 수없는 이유는 같습니다. –