Por que um processo difícil não usa outro núcleo?

1

Tenho um laptop Core i5 mais antigo e jogo Dota 2 às vezes. É muito exigente para o meu processador. Mas quando eu sair do jogo e olhar no gráfico de recursos do sistema (no Taks Manager) e ver o uso constante do processador de 50%.

Por que este processo exigente não funciona em outro núcleo sem uso?

Obrigado.

    
por koubic 27.05.2014 / 00:34

2 respostas

4

Embora os processadores multi-core existam há algum tempo, muitos aplicativos não são escritos para aproveitar o SMP (Symmetric Multiprocessing). Isso é provavelmente devido à complexidade introduzida ao tentar aproveitar o SMP, tanto no design quanto na depuração. Wikipedia explica :

... a multi-core architecture is of little benefit for the application [when a] single thread [does] all the heavy lifting, [or when it is unable] to balance the work evenly across multiple cores.

Programming truly multithreaded code often requires complex coordination of threads and can easily introduce subtle and difficult-to-find bugs due to the interweaving of processing on data shared between threads (thread-safety). Consequently, such code is much more difficult to debug than single-threaded code when it breaks.

O Dota 2, como muitos jogos, parece ser um daqueles aplicativos que não aproveitam o SMP.

    
por 27.05.2014 / 00:39
1

Você está vendo 50% de uso do processador em um único núcleo? No Windows, você pode definir algo chamado afinidade que, se definido, instrui o Windows a manter um processo em um ou em núcleos específicos. Talvez um ou mais dos seus processos tenham esse conjunto.

    
por 27.05.2014 / 00:40