2011-04-19 4 views
0

콘솔 응용 프로그램을 빌드하고 많은 스레드 풀 작업을 수행하고 단일 Console.ReadLine();주 스레드 + 스레드 풀 및 CPU 사용량

이 경우 앱이 최대한 수행 할 예정입니까? 스레드 풀이 가능한 한 많은 CPU를 사용할 수 있습니까? 또는 Console.ReadLine은 주 스레드를 CPU가 스레드 풀에서 훔치는 방식으로 호깅합니까?

는 (나는에서는 ReadLine는 significan 방법으로 CPU 시간을 도둑질하지 않는 가정하에했지만, JetBrains의 프로파일에 따라 CPU 시간의 60 % 내 하나의 readline 문에 소요되는)

답변

0

컴퓨터가 아닙니다 Console.RealLine을 사용하여 작업 관리자를 살펴보십시오.

하지만 응용 프로그램의 주 스레드는 콘솔에 "매달려 있습니다."라는 정보가 프로파일 러에보고됩니다.

당신이 말한 바로는 핫스팟으로보고합니다. 메인 스레드가이 기능에 대해 대부분의 시간을 소비하고 있기 때문입니다. (그리고 프로파일 러는 시간 = CPU 사용을 가정합니다.)

+0

프로파일 러는 HotSpot으로보고합니다. CPU를 소비하지 않으면 이상합니다. 그러나 다른 한편으로는 호출 메소드에 대해 "메소드의 시간"을 측정하는 경우 합리적입니다. –