不規則なグリッドに多数の小さな文字列を表示するC#Windows Formsアプリケーションのテキストレンダリングを最適化する必要があります。いつでも1秒間に4回更新できる5000以上のセルが表示されます。フォントファミリとサイズはセル全体で一貫していますが、色はセルによって異なります(太字/斜体/プレーンなど)。Windowsフォームでテキストを描画するための最速APIですか?
私がいるTextRenderer.DrawText
対Graphics.DrawString
に関するウェブ上の情報を矛盾見てきた最速/最高、Win32レベルでGDI対GDI+比較に減少しています。
私はまた、Windows XPとWindows Vistaとでは根本的に異なる結果を見ましたが、主なターゲットはWindows XPです。素晴らしい進歩を約束する記事 の下にWinFXとDirectX 10は役に立ちません:-)
ここで最善のアプローチは何ですか?私は小さなC++/CLIレイヤーを導入し、デバイスコンテキストの処理を最適化してパフォーマンスを向上させることを心配していませんが、どちらの方向性があるかについての決定的なアドバイスが必要です。
EDIT: 最初の応答ありがとうございます。私は背景のビットマップレンダリングとGDIの同等の呼び出しの固執を組み合わせて試行します。
私がVistaとXPの大きな違いを見たときに私が使ったのは、ブログリンクのサンプルアプリでした。私のVista PC、GDI、GDI +は同等でしたが、XPでは6xの違いがあります。これはおそらくVistaドライバーの問題ですが、ここではいくつかの難点を強調しています - ありがとう! –
ヒストリカルノート:ExtTextOutは、いくつかのカード/ドライバで実線の四角形を描く最も速い方法でした:) –