2011-07-04 4 views
-2

런타임에 프로세스의 리소스 사용 (시간, 메모리, 시스템 호출)을 모니터하려고하는데, ptrace, Linux의 setrlimit 같은 Windows에 api가 있습니까? 감사합니다.런타임에 프로세스의 리소스 사용 (시간, 메모리)을 모니터링하는 방법은 무엇입니까?

+0

컴파일 타임에 리소스 사용을 모니터링 할 수 있습니까? : P 당신이 찾고있는 것은 profilers라고 불리는 도구입니다. 웹에서 C++/C# 프로파일 러를 검색하십시오. –

+0

제안 해 주셔서 감사합니다. 간단한 온라인 판사를 창문에 작성하려고합니다. 사용자 코드를 컴파일하고 제한된 시간과 메모리 (예 : https://www.spoj.pl)로 프로그램을 실행할 수 있습니다. 따라서 몇 가지 제안 사항이 필요합니다. 어떤 win 아피를 사용해야합니까? – shiwei

+0

필요한 것을 더 설명하십시오. 프로세스가 사용할 수있는 메모리의 양과 CPU 시간의 양에 대한 제한을 두는 것처럼 들립니다. 그래? 다양한 측정 항목이 있기 때문에 메모리로 무엇을 의미하는지 정의하십시오. –

답변

0

몇 가지 방법이 있습니다. 우선, 프로세스를 낮은 무결성 프로세스로 실행하고자 할 것입니다. 이것은 Internet Explorer의 실행 방법과 유사합니다. 이러한 프로세스는 다른 프로세스, 레지스트리 및 파일 시스템과 분리됩니다 (선택한 낮은 무결성 디렉토리 제외).

둘째, 실행 파일을 제어 할 수 있습니다. 사용할 수있는 DLL과 함수를 허용 목록에 추가해야합니다. 블랙리스트에는 CreateProcess의 변종이 너무 많이 존재합니다. 위험한 기능을 제거하기 위해 CRT를 다시 제작해야 할 수도 있습니다.

샌드 박스 C# 코드는 다소 쉽습니다. 분명히 안전 코드로 제한해야합니다. PEVerify 도울 수 있습니다.

0

이러한 종류의 분석에는 ProcMon, Process Explorer, ProcessMonitor 및 성능 모니터와 같은 시스템 도구를 사용할 수 있습니다. 시스템 콜을 추적하는 것은 실제로 힘든 일이며, 응용 프로그램이 수백 건의 시스템 호출을 할 것입니다. 이러한 유형의 딥 프로파일 링을 위해 Inter VTune Analyzer와 같은 도구를 사용해야한다고 생각합니다.

예를 들어, 찾고

프로세스의 CPU 시간을 시작합니다 (UM/KM) :

관련 문제