0

スクリーンセーバーが起動した瞬間に、CUDAカーネルの実行時間がほぼ3倍になることに気づきました。これは、空白のスクリーンセーバーであっても発生します。

奇妙なことに、これは電源設定とは何の関係もないようです。スクリーンセーバーを無効にして画面の電源をオフにしても、パフォーマンスは変わりません。「モニターをオフにする」を「しない」に設定し、スクリーンセーバーを起動させると、それが発生します。

なぜこれが起こるのですか?
この現象に対抗する方法はありますか?
スクリーンセーバーを起動しないようにウィンドウに指示する方法はありますか?(メディアプレーヤーはどのようにそれを行いますか?)

XPSP2x64に取り組んでいます

4

1 に答える 1

2

まず、CUDA が非常に影響を受けているのは興味深いことです。

しかし、スクリーンセーバーが起動しないようにするための win32 のレシピは次のとおりです。

通常のアプローチは、API を使用して「偽の」キーの押下を自分自身に送信しSendInput、スクリーンセーバーをトリガーする非アクティブ タイマーをリセットすることです。

ただし、SPI_SETBLOCKSENDINPUTRESETSパラメータ forを使用して、これを行うアプリケーションを停止することは可能ですSystemParametersInfo

SPI_SETSCREENSAVEACTIVEもう 1 つの方法は、 forを使用してプログラムでスクリーンセーバーをオフにすることですSystemParametersInfo。ただし、これはユーザー全体のグローバル設定です。2 つのプログラムがこのオーバーラップを使用するとどうなるでしょうか。これを避けるようにしてください!

于 2010-02-01T08:29:01.880 に答える