Нам нужно оптимизировать рендеринг текста для приложения С# Windows Forms, отображающего большое количество небольших строк в нерегулярной сетке. В любое время может отображаться более 5000 ячеек, которые обновляются 4 раза в секунду. Семейство и размер шрифта согласованы по всем ячейкам, хотя цвет может варьироваться от ячейки к ячейке, как и жирный/курсив/равный.
Я видел противоречивую информацию в Интернете о том, что TextRenderer.DrawText
vs. Graphics.DrawString
является самым быстрым/лучшим, что сводится к GDI vs. GDI + на уровне Win32.
Я также видел радикально разные результаты в Windows XP и Windows Vista, но моей основной целью является Windows XP. Статьи, обещающие большие успехи в WinFX и DirectX 10 здесь не помогают: - )
Какой лучший подход здесь? Я не боюсь вводить небольшой слой С++/CLI и оптимизировать обработку контекста устройства, чтобы выжать больше производительности, но я хотел бы получить некоторые окончательные советы о том, в каком направлении двигаться.
EDIT: Спасибо за первоначальные ответы. Я попытаюсь использовать комбинацию рендеринга растрового изображения и придерживаться эквивалентных вызовов GDI.