我注意到屏幕保护程序启动的那一刻,我的 CUDA 内核的运行时间几乎增加了两倍。即使它是空白屏幕保护程序,也会发生这种情况。
奇怪的是,这似乎与电源设置无关。当我禁用屏幕保护程序并关闭屏幕电源时,性能保持不变。当我将“关闭显示器”设置为“从不”并让屏幕保护程序启动时,它就会发生。
为什么会这样?
有没有办法抵消这种现象?
有没有办法告诉Windows不要启动屏幕保护程序?(媒体播放器是如何做到的?)
我正在使用 XP SP2 x64
我注意到屏幕保护程序启动的那一刻,我的 CUDA 内核的运行时间几乎增加了两倍。即使它是空白屏幕保护程序,也会发生这种情况。
奇怪的是,这似乎与电源设置无关。当我禁用屏幕保护程序并关闭屏幕电源时,性能保持不变。当我将“关闭显示器”设置为“从不”并让屏幕保护程序启动时,它就会发生。
为什么会这样?
有没有办法抵消这种现象?
有没有办法告诉Windows不要启动屏幕保护程序?(媒体播放器是如何做到的?)
我正在使用 XP SP2 x64
首先,有趣的是 CUDA 受到如此大的影响。
但这里是 win32 中避免屏幕保护程序启动的方法:
一种正常的方法是偶尔使用 API 向自己发送“假”按键SendInput
,以重置触发屏幕保护程序的非活动计时器。
但是,可以使用SPI_SETBLOCKSENDINPUTRESETS
参数 for停止执行此操作的应用程序SystemParametersInfo
。
SPI_SETSCREENSAVEACTIVE
另一种方法是使用for 以编程方式关闭屏幕保护程序SystemParametersInfo
。但是,这是针对整个用户的全局设置——如果两个程序使用这种重叠怎么办?尽量避免这种情况!