Какие вещи могут вызвать зависание всей системы в течение 100-1000 миллисекунд? - PullRequest
1 голос
/ 14 января 2011

Я работаю над игрой для Windows, и во время рендеринга некоторые компьютеры будут испытывать периодические паузы («заминки» из-за отсутствия лучшего термина). При профилировании они появляются в, казалось бы, случайных местах в коде. В конце концов я заметил, что это затронуло не только мой процесс, но (казалось бы) каждый процесс в системе. Все потоки в моем приложении зацепляются сразу. Загрузка ЦП уменьшается во время этих заминок, и кажется, что большинство процессов не прогрессируют.

Это наводит меня на мысль, что это может быть проблема операционной системы или драйвера, но она возникает только во время игры (и только в некоторых системах). Какие операции может выполнять операционная система, чтобы ядро ​​приостановило все пользовательские потоки и заблокировало их. Какой-то ввод / вывод? Сначала я думал о пейджинге, но у меня сложилось впечатление, что это повлияет только на один процесс, не так ли?

Некоторые используемые системы: карты Windows, DirectX (3d), nVidia (неизвестно, если реплицируется на ATI), использование перекрывающегося ввода-вывода для потоковой передачи

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Интенсивное использование памяти IO.Это, конечно, включает системный файл подкачки, но может также включать пользовательские приложения, которые интенсивно используют mmio (gcc для одного)

1 голос
/ 14 января 2011

Если вы используете много графики, это может быть подкачка графической памяти в файл подкачки.

Или, возможно, поток буферизуется на диске?

Стоит посмотреть,зацепки совпадают с индикатором активности диска на ПК.

...