1

我正在开发一款 Windows 游戏,在渲染时,一些计算机会遇到间歇性暂停(“卡顿”,因为没有更好的术语)。分析时,它们出现在代码中看似随机的位置。最终我注意到受影响的不仅仅是我的进程,而是(似乎)系统上的每个进程。我的应用程序中的所有线程都会立即连接。在这些故障期间 CPU 利用率下降,并且似乎大多数进程都没有进展。

这让我相信这可能是操作系统或驱动程序问题,但它仅在玩游戏时发生(并且仅在某些系统上)。操作系统可能正在执行什么样的操作,这将需要内核暂停所有用户线程并阻塞。某种I/O?起初我想到了分页,但我的印象是这只会影响一个进程,不是吗?

使用中的一些系统:Windows、DirectX (3d)、nVidia 卡(如果在 ATI 上复制则未知),使用重叠 io 进行流式传输

4

2 回答 2

1

大量使用内存映射 IO。这当然包括系统页面文件,但也可以包括大量使用 mmio 的用户应用程序(gcc 为一)

于 2011-06-21T00:49:29.670 回答
1

如果你有很多图形在使用,它可能会将图形内存分页到交换文件中。

或者,流可能正在磁盘上缓冲?

值得一看的是,故障是否与 PC 的磁盘活动 LED 一致。

于 2011-01-14T14:54:54.267 回答