velocidade variando drasticamente quando executando o mesmo código na intel i7

0

Eu tenho uma CPU Intel i7-5500U (2.40GHz), e atualmente estou executando quase os mesmos códigos (codificados com c) consecutivamente. Eu olhei para o gerenciador de tarefas (e meu programa) e percebi que algo estava acontecendo.

Provavelmente devo mencionar primeiro que mais uso da CPU, em todos os casos, gera cálculos mais rápidos aqui. Cerca de 30% do uso da CPU leva a um cálculo 4x mais rápido do que cerca de 9%. > Além disso, quando começa a correr em torno de 9%, fica em torno desse valor até o final. Mesmo com 30%.

Por exemplo, ontem, um código foi executado em cerca de 30% do uso da CPU, mas hoje eu só recebi cerca de 9% de uso. 9% foi o habitual, quase consegui 30% 0 vezes.

Isso significa que no meu laptop, um código que pode rodar 4x mais rápido do que o normal não corre tão rápido a maior parte do tempo, a propósito, no laptop de outra pessoa, ele sempre roda 4x velocidade.

Eu acho que a diferença de 4x na velocidade no mesmo sistema é muito estranha, especialmente quando nada além do programa e do editor estava sendo executado em segundo plano em ambos os casos.

Então, o que eu quero fazer é fazer cálculos rápidos toda vez que o código for executado. Isso é possível?

Elevar a prioridade via gerenciador de tarefas não funcionou. Mesmo a configuração 'tempo real' não mudou nada.

O programa é de encadeamento único e não é intensivo de E / S.

Se alguma informação adicional for necessária, por favor me diga e eu vou escrever aqui. Claro, exceto coisas como "postar todo o código".

Obrigado pelo seu tempo de antecedência.

ATUALIZAÇÃO: Eu apenas olhei para o gerenciador de tarefas esta manhã, e algo mais bizarro aconteceu. Logo depois que eu mudei o mouse e fiz a tela aparecer novamente (você sabe como coisas como protetor de tela e tela preta aparecem após 15 minutos?), o uso da CPU caiu rapidamente de cerca de 30% para cerca de 9% (o gerenciador de tarefas também estava o tempo todo), e quando eu olhei para o progresso, ele rodou poucas vezes mais rápido do que deveria. Ele deveria ter levado cerca de 17 horas para completar o processo, mas apenas 10 horas, e o programa fez mais de 5/6 do trabalho.

UPDATE2: Sim, reconheço que o uso da CPU não é uma boa maneira de medir o desempenho. No entanto, neste caso, em todos os casos em que o uso da CPU mostrou 30%, o código acabou sendo executado poucas vezes mais rápido do que quando o uso da CPU mostrou 9%. Estou usando termos "cerca de 30%" e "cerca de 9%" apenas para dizer que a velocidade é diferente e pode ser vista no gerenciador de tarefas. Se você duvida que ele estava rodando mais rápido quando mostrava 30%, eu teria que te dizer que o código sempre funcionava por cerca de 4000 segundos quando mostrava 30%, e sempre correu para cerca de 16000, quando mostrou 9%. Sim. todas as vezes.

UPDATE3: Eu executei este código (com algumas edições muito simples, como alterar algumas variáveis) durante um mês, e reiniciei meu laptop várias vezes ao longo do mês.

UPDATE4: O código é executado com a mesma velocidade todas as vezes (e 4 vezes mais rápido do que a minha velocidade 'usual' (9%)) na Intel i5, 4ª geração M do meu colega de trabalho.

    
por Jayeon Yi 02.10.2016 / 21:27

0 respostas