2016-08-23 1 views
0

4 개 이상의 코어가있는 여러 시스템에서 실행되는 C++로 개발 된 32 비트 응용 프로그램입니다. 그리고 응용 프로그램에서 코어/프로세서 소비를 분석하고 있습니다. 32 비트 응용 프로그램에서 둘 이상의 코어를 사용할 수 있습니까? '예'라고 대답 한 경우이를 확인할 수있는 방법이 있습니까?32 비트 응용 프로그램에서 여러 코어/프로세서를 사용합니까?

+1

32 비트 앱이 64 비트 앱보다 더 적은 코어를 사용하는 것은 불가능합니다. 모르는 경우 디버거를 사용하십시오. 디버거의 스레드 창과 관련이 있습니다. 기술적으로는 [동시성 분석기] (https://msdn.microsoft.com/en-us/library/dd537632.aspx)에서 얼마나 많은 코어가 효과적으로 사용되고 있는지를 볼 수 있습니다. 왜냐하면 둘 이상의 스레드가 동시에 두 개 이상의 코어를 사용하십시오. 스레드는 코드를 스레드로부터 안전하게 유지하기 위해 서로 잠그는 습관이 있습니다. 작업 관리자는 단순한 경향이 있습니다. –

+0

감사합니다. 한스. 동시성 분석기를 사용해보십시오. 고마워. – Vivek

+0

@HansPassant 한가지 더 확인해 주실 수 있습니까? 64 비트 프로세스에는 이러한 제한이 없습니다. 맞습니까? 사용 가능한 모든 CPU를 동시에 사용할 수 있습니다. – Vivek

답변

2

32/64-bit는 응용 프로그램이 가상 메모리 주소 지정에 사용하는 비트 수입니다. 응용 프로그램에서 사용하는 코어의 수는 해당 수와 완전히 독립적입니다.

일반적으로 모든 응용 프로그램은 활성 스레드가있는만큼 많은 사용 가능한 코어를 사용합니다 (Hans Passant가 올바르게 지적했기 때문에 일부 스레드는 다른 스레드, IO 또는 다른 스레드를 기다리는 동안 차단 될 수 있습니다. 어떤 코어에 대해서도).

작업 관리자에서 프로세스에 대한 CPU 사용량을 확인하는 것이 간단합니다. 프로세스가 CPU의 100%/number_of_cores 미만을 사용하면 효과적으로 단일 스레드입니다. 더 많이 활용한다면, 하나 이상의 코어에서 실행된다는 의미입니다. 멀티 스레드 기술을 적절하게 사용하여 사용 가능한 CPU의 100%을 활용하도록하는 것이 목표입니다 (다시 32 비트/64 비트 문제와 관련이 없습니다).

관련 문제