我正在研究Windows游戏,在渲染时,某些计算机会出现间歇性暂停(由于缺少更好的术语而导致“故障”)。在分析时,它们出现在代码中看似随机的位置。最后我注意到,不仅仅是我的流程受到影响,而且(看似)系统上的每个流程。我的应用程序中的所有线程都立即出现问题。这些故障期间CPU利用率下降,似乎大多数进程都没有进展。
这让我相信这可能是操作系统或驱动程序问题,但它只在玩游戏时发生(并且仅在某些系统上)。操作系统可能正在执行哪些操作,这需要内核暂停所有用户线程并阻塞。某种I / O?起初我想过分页,但我的印象只会影响一个进程,不是吗?
正在使用的一些系统:Windows,DirectX(3d),nVidia卡(如果在ATI上复制,则未知),使用重叠的io进行流式传输
答案 0 :(得分:1)
如果您使用了大量图形,则可能是将图形内存分页到交换文件中。
或许流可以在磁盘上缓冲?
值得看看这些故障是否与PC的磁盘活动LED重合。
答案 1 :(得分:1)
大量使用内存映射IO。这当然包括系统页面文件,但也可以包括大量使用mmio的用户应用程序(gcc为一个)