É bom utilizar ~ 100% da CPU pela minha aplicação [fechada]

3

Eu tenho um aplicativo escrito em C ++ no Linux (Ubuntu 12.14), que decodifica o áudio e encontra o pico. Este cálculo está sendo executado em um encadeamento em segundo plano. No thread principal da interface do usuário, estou chamando o thread em segundo plano várias vezes. Quando esse thread em segundo plano é executado, vejo cerca de 100% de utilização da CPU; ou seja, somente o uso do primeiro núcleo é de 100% e os 3 núcleos restantes são ociosos (processador quad core).

Então, é bom comportamento para o aplicativo utilizar 100% da CPU? Eu li algum post que afirma, "Geralmente é uma coisa boa para um processo usar 100% da CPU. Isso significa que termina mais cedo."

Outra declaração que eu li é, "75% a 100% de uso de CPU não é tão ruim se você está recebendo isso sob carga total ou quando há um grande aplicativo em execução; no entanto, se esta é uma leitura quando ocioso ou quando você não estiver usando o PC / laptop, então isso é uma preocupação. "

    
por Haris 13.04.2016 / 18:19

3 respostas

17

Depende se o seu aplicativo é computacional (assim) ou interativo.

Para uma aplicação computacional, a utilização completa da (s) CPU (s) é o seu objetivo, pois isso significa que o resultado está pronto mais cedo. Qualquer coisa que faça com que a utilização diminua é uma oportunidade de melhoria (por exemplo, espera na E / S).

Para um aplicativo interativo, qualquer tempo usado na CPU é o tempo que não é gasto pronto para responder à entrada do usuário. Você gostaria que seu uso fosse baixo.

Algumas aplicações, como editores de multimídia, são computacionais e interativas. Os bons dividem o trabalho em diferentes segmentos, para que possam responder à interação e, ao mesmo tempo, alcançar um alto rendimento. Isso parece ser o que você está fazendo.

Uma coisa que você pode considerar é usar mais encadeamentos para sua carga de trabalho (supondo que seja divisível) para que você mantenha mais núcleos ocupados com o seu cálculo. Se alguns deles estiverem inativos, esse é um recurso desperdiçado!

    
por 13.04.2016 / 18:39
2

Claro que é bom. A única raison d'être da CPU deve ser usada pelos aplicativos. Todo o combo hw + os existe para este propósito único. Por que não seria bom consumir tanto cpu quanto no sistema?

    
por 13.04.2016 / 18:25
1

O objetivo dos sistemas operacionais é lidar com isso para você, Windows, Mac OS, Linux, os dois objetivos fundamentais de todos eles são agendamento e interface de hardware. Esta questão não tem nada a ver com Linux ou Unix.

    
por 13.04.2016 / 22:38