
Então eu executo um programa em tempo real de alta intensidade (CPU/GPU). Durante a execução normal, de repente, tudo congela por 1 a 4 segundos. Abri o "Process Explorer" em segundo plano para ajudar a obter informações e talvez identificar algo. Aqui está a aparência dos gráficos de CPU/GPU quando eu os alinho no tempo:
Observe as 4 quedas distintas na CPU/GPU. Você pode ver que isso vai de algum tipo de uso positivo de CPU/GPU a quase zero. Essas quedas no gráfico se alinham quando o programa em tempo real congela repentinamente.
Como descubro o que está causando essas quedas repentinas?
NOTA: Quando você coloca o mouse sobre o gráfico, ele informa a hora, com precisão de segundos, de onde o cursor está.Talvez esse recurso de passar o mouse possa ser útil de alguma forma (por exemplo, e se você tivesse um registro de todos os processos a cada 100 ms).
EDITAR:
O programa em tempo real é um videogame e, portanto, não posso assistir a algum tipo de instrumentação enquanto o videogame está rodando. Preciso de uma solução que permita que você olhe para trás no tempo de alguma forma para ver o que estava acontecendo quando ocorreu a desaceleração.
EDITAR:
RE - Gravação de dados versus uso de monitor em tempo real: Portanto, por algum motivo, o gravador de desempenho do Windows não está gravando o que eu esperava. Então mudei para usar "perfmon" e depois abri seu "monitor de recursos".
RE - Configurando para poder visualizar o monitor em tempo real: No videogame eu configurei para assistir e depois coloquei o videogame no modo "janela" para poder visualizar a exibição em tempo real que o Resource Monitor possui.
Agora que posso obter tempo semi-real (apenas uma vez por segundo... como você consegue mais de uma vez por segundo?) Comecei a observar as várias leituras de dados em tempo real.
Chegando à causa: notei uma forte correlação entre alto IO de disco e baixo uso de CPU (que também é visto pelo congelamento do jogo).Como você usa o monitor de recursos para descobrir quem está fazendo todo esse IO de disco ofensivo?
Responder1
O uso de memória e E/S de disco são as primeiras coisas que eu observaria.
Tente desativar programas em segundo plano, como programas antivírus/antimalware, qualquer programa atualizador, como o Windows Update, etc.Executando uma inicialização limpaé a melhor maneira de verificar se algum serviço ou programa de terceiros está causando esse problema.
Você também deve monitorar a memória - o Windows pode estar paginando a memória em segundo plano se a memória estiver acabando.
Você notou se isso acontece em determinados momentos – por exemplo, quando você troca de armas ou quando um novo som é tocado? Pode ser que um recurso do jogo tenha sido retirado da memória ou não tenha sido carregado e o jogo precise carregar o recurso do disco. Dependendo do jogo, você poderá diminuir algumas configurações para reduzir a qualidade, quantidade ou variedade dos recursos do jogo.
Responder2
TentarFancyCachecom"valor médio de gravação".
Parece ser capaz de distribuir o acesso ao disco para evitar rajadas.