2011-01-22 2 views
1

mentalis 웹 사이트에서 제공하는 프록시 소켓 클래스에서 실행되는 상대적으로 작은 프로그램이 있습니다. 어떤 이유로이 프로그램은 빠르게 실행될 때 100 % CPU 리소스가되었습니다. 코드의 어떤 부분이 리소스를 가장 많이 사용하는지 식별하는 데 도움이되는 Visual Studio의 기능이 코드에서 문제를 발견했다고 생각할 수 있습니다. 왜 소켓 클래스가 그런 cpu 돼지가 될지에 대한 아이디어?Visual Studio 리소스

답변

1

디버그 모드에서 프로그램을 실행하고 CPU로드가 100 %가되면 실행중인 프로세스를 Ctrl-Alt-Break로 중단하십시오. . 제점의 원인 인 코드 부분에서 프로그램을 정확하게 중지 할 가능성이 높습니다. 한 번의 중단으로 올바른 코드 줄을 찾지 못하면이 과정을 여러 번 반복하십시오.

그냥 추측하십시오. 아마도 소켓 클래스가 어떤 종류의 폴링 또는 통화 중 대기를 수행합니까?

+0

폴링이란 무엇을 의미합니까? –

+0

http://en.wikipedia.org/wiki/Polling_%28computer_science%29 –

2

Visual Studio 2010 Premium 및 Enterprise 에디션에는 프로파일 러가 내장되어 있습니다.이 기능을 '성능 탐색기'라고합니다. 그게 가능하지 않다면 디버그 빌드를하고 주기적으로 코드를 멈추고 수동으로 프로파일 링을 수행하여 가장 자주 실행되는 코드를 확인하십시오 (편집 : Doc Brown에 의해 언급 됨).

관련 문제