我正在开发一款 Windows 游戏,在渲染时,一些计算机会遇到间歇性暂停(“卡顿”,因为没有更好的术语)。分析时,它们出现在代码中看似随机的位置。最终我注意到受影响的不仅仅是我的进程,而是(似乎)系统上的每个进程。我的应用程序中的所有线程都会立即连接。在这些故障期间 CPU 利用率下降,并且似乎大多数进程都没有进展。
这让我相信这可能是操作系统或驱动程序问题,但它仅在玩游戏时发生(并且仅在某些系统上)。操作系统可能正在执行什么样的操作,这将需要内核暂停所有用户线程并阻塞。某种I/O?起初我想到了分页,但我的印象是这只会影响一个进程,不是吗?
使用中的一些系统:Windows、DirectX (3d)、nVidia 卡(如果在 ATI 上复制则未知),使用重叠 io 进行流式传输