it-swarm-ko.tech

프로세스 당 CPU 및 메모리 사용량 추적

내 응용 프로그램 중 하나가 원하는 것보다 더 많은 CPU 사이클을 먹는 것으로 보입니다. 문제는-버스트에서 발생하며 작업 관리자를 보는 것만으로도 즉각적인 사용법 만 보여 주므로 도움이되지 않습니다.

일부 프로세스의 CPU 및 메모리 사용 내역을 추적하는 방법이 있습니까 (Windows). 예 : "firefox"추적을 시작하고 한 시간 정도 지나면 해당 시간 동안의 CPU 및 메모리 사용량 그래프가 표시됩니다.

기성품 도구 또는이를 달성하기위한 프로그래밍 방식을 찾고 있습니다.

153
Eli Bendersky

Start > Runperfmon을 입력하고 Enter를 누르십시오. 성능 창이 열리면 + 부호를 클릭하여 그래프에 새 카운터를 추가하십시오. 카운터는 PC 작동 방식의 여러 측면이며 유사성에 따라 "성능 개체"라는 그룹으로 그룹화됩니다.

질문에 대해서는 "프로세스", "메모리"및 "프로세서"성능 개체를 선택할 수 있습니다. 그런 다음이 카운터를 실시간으로 볼 수 있습니다

나중에 검사를 위해 성능 데이터를 저장하도록 유틸리티를 지정할 수도 있습니다. 이렇게하려면 왼쪽 패널에서 "성능 로그 및 경고"를 선택하십시오. (위에 언급 된 카운터를 제공하는 시스템 모니터 콘솔 바로 아래에 있습니다.없는 경우 "파일"> "스냅인 추가/제거"를 클릭하고 추가를 클릭 한 후 목록에서 "성능 로그 및 경고"를 선택하십시오. ".)"성능 로그 및 경고 "에서"카운터 로그 "아래에 새로운 모니터링 구성을 생성 한 다음 카운터를 추가하고 샘플링 속도, 로그 형식 (이진 또는 일반 텍스트) 및 로그 위치를 지정할 수 있습니다.

158
Martin08

프로세스 탐색기 프로세스 당 실행 된 총 CPU 시간과 프로세스 당 히스토리 그래프를 표시 할 수 있습니다.

40
Niall

Perfmon.exe를 사용하여 메모리 사용을 추적하기 위해 "프로세스"카운터에서 "개인 바이트"카운터를 사용해 보았으며 제대로 작동합니다.

16
CppNoob

아마도 당신은 이것을 사용할 수 있습니다. 그것은 당신을 위해 작동하고 지정된 프로세스에 대한 프로세서 시간을보고합니다.

@echo off
: Rich Kreider <[email protected]>
: report processor time for given process until process exits (could be expanded to use a PID to be more
: precise)
: Depends:  typeperf
: Usage:  foo.cmd <processname>

set process=%~1
echo Press CTRL-C To Stop...
:begin
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end
) else (
echo %%~c%%
goto begin
)
)

:end
echo Process seems to have terminated.
10
Rich Kreider

Perfmon.exe를 사용하면 모니터링하려는 프로세스에 대한 카운터를 추가 할 수 있습니다 (오른쪽 패널을 마우스 오른쪽 단추로 클릭).

성능 개체 : 프로세스 "목록에서 인스턴스 선택"을 확인하고 firefox를 선택하십시오.

7
Ady Romantika

WMI는 Windows Management Instrumentation이며 모든 최신 버전의 Windows에 기본 제공됩니다. CPU 사용, 디스크 I/O 및 메모리 사용과 같은 것을 프로그래밍 방식으로 추적 할 수 있습니다.

Perfmon.exe는이 인터페이스의 GUI 프런트 엔드이며 프로세스를 모니터링하고 정보를 로그에 기록하며 사실 이후 로그를 분석 할 수 있습니다. 그것은 세계에서 가장 우아한 프로그램은 아니지만 일을 끝내줍니다.

6
doflynn

Process Lasso는 그래프가 아닌 프로세스 자동화 및 우선 순위 클래스 최적화를 위해 더 많이 설계되었습니다. 즉, does 프로세스 별 CPU 사용 내역을 제공하지만 (그래프에 흰색 선으로 표시됨) NOT 프로세스 별 메모리 사용 내역을 제공합니다.

면책 조항 : 나는 Process Lasso의 저자이지만 더 나은 해결책이 있기 때문에 실제로 그것을 보증하지는 않습니다 (perfmon이 최고입니다).

가장 좋은 것은 Windows Vista + 리소스 및 성능 모니터입니다. 시간이 지남에 따라 프로세스별로 CPU, 메모리, 네트워크 및 디스크 액세스 사용량을 추적 할 수 있습니다. 그것은 오래 전에 만들어 졌어 야하는 훌륭한 전체 시스템 정보 유틸리티입니다. 내가 실수하지 않으면 시간이 지남에 따라 프로세스 당 CPU 및 메모리 사용률을 추적 할 수 있습니다 (나머지 목록에있는 것 중에서).

2
dyasta

C #/Perl/Java 스크립트를 사용하여 WMI 명령을 사용하여 활용도 데이터를 얻을 수도 있습니다. 아래는 그 단계입니다.

2 개의 WMI 선택 쿼리를 실행하고 CPU 사용률 공식을 적용해야합니다

1. 총 논리 프로세스 수를 검색하려면

select NumberOfLogicalProcessors from Win32_ComputerSystem

2. PercentProcessorTime의 값을 검색하려면 TimeStamp_Sys100NS (CPU 사용률 공식이 적용되어 실제 사용률을 얻음)와 WorkingSetPrivate (RAM)를 최소 2 회 (휴면 간격 1 초 로) -)

select * from Win32_PerfRawData_PerfProc_Process where IDProcess=1234

3. CPU % 사용률 공식 적용

CPU%= ((p2-p1)/(t2-t1)*100)/NumberOfLogicalProcessors

p2는 두 번째로 검색된 PercentProcessorTime을 나타내고 p1은 처음으로 검색된 PercentProcessorTime을 나타냅니다. t2 및 t1은 TimeStamp_Sys100NS를위한 것입니다.

이에 대한 샘플 Perl 코드는 링크 http://www.craftedforeveryone.com/cpu-and-ram-utilization-of-an-application-using-Perl-via-wmi/ 에서 찾을 수 있습니다. =

이 논리는 WMI 쿼리를 지원하는 모든 프로그래밍 언어에 적용됩니다

2
Kaarthikeyan

나는 이것을 시도하지 않았지만 ProcDump 더 나은 솔루션처럼 보입니다.

사이트 설명 :

ProcDump는 관리자 또는 개발자가 스파이크의 원인을 확인하는 데 사용할 수있는 스파이크 동안 CPU 스파이크에 대한 응용 프로그램을 모니터링하고 크래시 덤프를 생성하는 것이 주 목적인 명령 줄 유틸리티입니다. 또한 ProcDump에는 중단 된 창 모니터링 (Windows 및 작업 관리자가 사용하는 동일한 창 중단 정의 사용), 처리되지 않은 예외 모니터링 및 시스템 성능 카운터 값을 기반으로 덤프를 생성 할 수 있습니다. 또한 다른 스크립트에 임베드 할 수있는 일반 프로세스 덤프 유틸리티 역할을 할 수 있습니다.

2
sean

Process Lasso 를보고 싶을 것입니다.

1
maksa

흠, 그래프가 그리 편리하지는 않지만 Process Explorer 가 할 수 있음을 알았습니다. 여전히 대안/더 나은 방법을 찾고 있습니다.

1
Eli Bendersky

Perfmon.exe는 Windows에 내장되어 있습니다.

1
SaaS Developer

Windows 10에서 작업 관리자는 누적 CPU 시간을 표시 할 수 있습니다. "앱 기록"탭 및 "사용 내역 삭제"로 이동하십시오. 이제 한두 시간 동안 작동하도록 두십시오.

Windows 10 Cumulative CPU time

이것이 수행하지 않는 것은 탭별로 브라우저의 사용량을 분류하는 것입니다. 자주 사용하지 않는 탭은 에너지를 사용하고 PC 속도를 저하시키는 열린 탭마다 엄청난 양의 작업을 수행합니다.

1
Bryce

CPU/RAM/IO 속도의 이력 그래프에 taskinfo를 사용합니다. http://www.iarsn.com/taskinfo.html

그러나 응답하지 않는 버스트는 잘못된 HD/SS 드라이브로 인해 인터럽트 시간처럼 들립니다.

0
Terrik