실시간 프로그램 실행 중 갑자기 멈추는 현상은 무엇인가요?

실시간 프로그램 실행 중 갑자기 멈추는 현상은 무엇인가요?

그래서 저는 집약적인(CPU/GPU) 실시간 프로그램을 실행합니다. 정상적인 실행 중에 갑자기 모든 것이 1~4초 동안 정지됩니다. 통찰력을 얻고 무언가를 식별하는 데 도움이 되도록 백그라운드에서 "프로세스 탐색기"를 열었습니다. CPU/GPU 그래프를 시간에 맞춰 정렬하면 다음과 같습니다.

여기에 이미지 설명을 입력하세요

CPU/GPU 모두에서 4개의 뚜렷한 하락을 확인하세요. 일종의 긍정적인 CPU/GPU 사용량이 거의 0으로 변하는 것을 볼 수 있습니다. 그래프의 이러한 하락은 실시간 프로그램이 갑자기 정지되는 경우와 일치합니다.

이러한 급격한 하락의 원인을 어떻게 찾을 수 있나요?

참고: 그래프 위에 마우스를 놓으면 커서가 있는 위치의 시간이 초 단위까지 정확하게 표시됩니다.어쩌면 이 마우스 오버 기능이 어떤 면에서는 도움이 될 수도 있습니다(예: 100ms마다 모든 프로세스에 대한 로그가 있다면 어떨까요).

편집하다:

실시간 프로그램은 비디오 게임이므로 비디오 게임이 실행되는 동안 어떤 종류의 악기 연주도 볼 수 없습니다. 속도 저하가 발생했을 때 무슨 일이 일어났는지 확인하기 위해 어떻게든 시간을 되돌아볼 수 있는 솔루션이 필요합니다.

편집하다:

RE - 데이터 기록 및 실시간 모니터 사용: 따라서 Windows 성능 레코더는 어떤 이유로 기록할 것으로 예상되는 내용을 기록하지 않습니다. 그래서 "perfmon"을 사용하도록 전환한 다음 "리소스 모니터"를 열었습니다.

RE - 실시간 모니터를 볼 수 있도록 설정: 비디오 게임에서 관전하도록 설정한 다음 리소스 모니터의 실시간 디스플레이를 볼 수 있도록 비디오 게임을 "창" 모드로 설정했습니다.

이제 준실시간(초당 한 번만... 초당 한 번 이상은 어떻게 얻을 수 있습니까?)을 얻을 수 있으므로 다양한 실시간 데이터 판독값을 살펴보기 시작했습니다.

원인 파악: 높은 디스크 IO와 낮은 CPU 사용량 사이에 강한 상관관계가 있음을 발견했습니다(게임 내 정지 현상에서도 나타남).문제가 되는 디스크 IO를 수행하는 사람이 누구인지 확인하기 위해 리소스 모니터를 어떻게 사용합니까?

답변1

제가 가장 먼저 살펴보는 것은 메모리 사용량과 디스크 I/O입니다.

바이러스 백신/맬웨어 방지 프로그램, Windows Update와 같은 업데이트 프로그램 등의 백그라운드 프로그램을 비활성화해 보십시오.클린 부팅 수행타사 서비스나 프로그램이 이 문제를 일으키는지 확인하는 가장 좋은 방법입니다.

메모리도 모니터링해야 합니다. 메모리가 부족하면 Windows가 백그라운드에서 메모리를 페이징할 수 있습니다.

무기를 바꾸거나 새로운 소리가 재생되는 등 특정 시간에 이런 일이 발생하는지 알아차린 적이 있나요? 게임 리소스가 메모리에서 교체되었거나 로드되지 않았으며 게임이 디스크에서 리소스를 로드해야 하는 경우가 있을 수 있습니다. 게임에 따라 일부 설정을 낮춰 게임 내 리소스의 품질, 수량 ​​또는 다양성을 줄일 수 있습니다.

답변2

노력하다팬시캐시~와 함께"평균 쓰기 양".

버스트를 방지하기 위해 디스크 액세스를 분산시킬 수 있는 것 같습니다.

관련 정보