Como um único aplicativo encadeado como o Excel 2003 pode levar mais de 50% de uma CPU com hyper-threaded ou dual-core no gerenciador de tarefas?

3

Estou aguardando o Excel concluir um recálculo e percebo que o uso da CPU conforme relatado pelo Gerenciador de Tarefas ocasionalmente aumenta para 51% ou 52% em um Pentium 4 com hyper-threading. Como é um aplicativo single-threaded como o Excel 2003 fazendo isso?

É apenas um erro de arredondamento / estimativa por parte do Gerenciador de Tarefas? Ou é algo a ver com alocação de HT, ou seja, eu não veria isso acontecendo em uma máquina dual-core ou dual-CPU genuína?

    
por Lunatik 25.03.2010 / 17:13

3 respostas

6

Eu ficaria surpreso se o Excel 2003 fosse single threaded. É provável que tenha pelo menos um thread de interface do usuário e um thread de trabalho. A interface do usuário repinta enquanto o cálculo está acontecendo? Em caso afirmativo, o Excel não é single-threaded.

    
por 25.03.2010 / 17:15
1

O MS Windows não bloqueia por padrão um aplicativo em um núcleo, então o que você está vendo é a manifestação do Excel sendo executado em um núcleo ou outro.

Você pode (temporariamente) alterar esse comportamento através do Gerenciador de Tarefas.

Se você tiver o Excel em execução, inicie o taskmgr.exe, vá para a lista de processos e clique com o botão direito do mouse no processo, você pode optar por definir a afinidade para o processo.

Marcando-o especificamente para um núcleo ou o outro permitirá que você veja (novamente no taskmgr) que ele está sendo executado apenas em um núcleo.

    
por 25.03.2010 / 18:40
1

Bem, e se você tivesse um único processador core / thread? Como o Excel poderia usar mais de 50% disso? Se você tiver dois núcleos e cada um puder executar um thread e o Excel for executado em um núcleo, ele poderá usar até 100% desse núcleo.

Com hyper-threading, você não tem 2 threads "reais" por núcleo de cpu, mas 2 threads "virtuais". Os dois segmentos precisam compartilhar seus recursos de execução. Portanto, é possível que um dos encadeamentos use mais recursos do que o outro, o que pode ser exibido como uso acima de 50%.

    
por 25.03.2010 / 19:56