Windows 10 で描画処理が遅くなる問題について

Microsoft MSDN フォーラムで下記のような投稿がありました。

Windows 10 の Display 時間が遅い
https://social.msdn.microsoft.com/Forums/ja-JP/9119bf4d-f07d-4a61-8290-e6d10cfe3680

調べてみると、この問題は Windows 10 の問題というよりは Desktop Window Manager (DWM) が有効のとき、GDI+ の画面への直接描画が遅くなる問題があるようです。DWM は Windows 10 では必ず有効となっており、Windows 7 ではシステムの設定で ON / OFF を切り替えることができます。Windows 7 でタイトルバーが半透明になる状態(Aero が有効のとき)で DWM が有効となっているようです。

描画速度を調べる際に作成したプログラムは下記に置いています。

https://github.com/kenjinote/DrawSpeedTest

【実行結果】

OS GDI GDI(ダブルバッファリング) GDI+ GDI+(ダブルバッファリング)
Win7(Not DWM) 55ミリ秒 10ミリ秒 87ミリ秒 32ミリ秒
Win7(DWM) 10ミリ秒 10ミリ秒 482ミリ秒
(2回目以降184ミリ秒)
70ミリ秒
(2回目以降46ミリ秒)
Win10(DWM) 7ミリ秒 6ミリ秒 182ミリ秒 35ミリ秒

回避方法としては、描画に半透明やアンチエイリアスを使っていない場合は、GDI+ ではなく GDI を使用して描画する方がおすすめです。また、GDI+ を使った方法でも、ダブルバッファリングを使った方法にすると描画を高速に行えるようになりました。詳しくは上記ソースコードへのリンクをご参照ください。

参考になりましたら幸いです。


kenjinote

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする