Медленная производительность WPF на интегрированной графике GMA 500
Моя команда разрабатывает приложения WPF для развертывания на аппаратной платформе Intel Atom Z530. Intel Atom Z530 поставляется с интегрированной графикой Intel GMA 500, которая имеет ядро PowerVR SGX 535 GPU. Ядро PowerVR SGX 535 GPU является точным графическим ядром, используемым в чипсете Apple A4 для iPad.
Мой вопрос:
Почему WPF так медленно работает с графикой PowerVR SGX 535?
Мы фактически отказываемся от аппаратного ускорения для нашего приложения WPF, чтобы получить лучшую производительность (экраны для перехода на экран, переходы в диалогах, взаимодействие 2D-графики). Стек стек технологии iPad способен обеспечить намного лучшую производительность пользовательского интерфейса с тем же ядром графического ядра.
Спасибо за понимание!
Ответы
Ответ 1
Вы работаете .Net 4 на Windows Embedded Standard 7? Я обнаружил, что WPF работает намного лучше в Windows 7, чем XP.
Каковы ваши конкретные проблемы с производительностью?
Если это анимация, попробуйте использовать кешированную композицию (функция .Net 4), чтобы применить BitmapCache к любому фону, который может быть анимированным. Кроме того, не забудьте поделиться и заморозить все используемые вами кисти.
Если это составление диаграмм, выберите "DrawingVisuals" вместо "Формы" или другие контуры более высокого уровня. Вы также можете использовать GDI + для рисования в WriteableBitmaps в качестве последнего средства.
Кроме того, двухъядерные Atoms также предоставят значительно более плавный интерфейс WPF в моем опыте. Попробуйте Atom D510 или D525, если это возможно. Они используют гораздо большую мощность и выделяют больше тепла, но улучшение пользовательского опыта было для моего продукта.
И имейте в виду, что приложения iOS - это собственный код. WPF обеспечивает гораздо более высокий уровень абстракции и гораздо более быстрое развитие за счет, как правило, более низкой производительности, особенно когда ограничены аппаратные ресурсы.
Ответ 2
Я обнаружил, что все чипсеты GMA на XP имеют ужасную производительность WPF. Не только низкие частоты кадров, но и страшные графические срывы и артефакты. Поверхности станут видны, поверхности видео станут искаженным беспорядком, мышиные мыши станут глючными.
Нашим решением было отключить аппаратное ускорение с помощью патча реестра, который мы предлагаем клиентам, у которых есть проблемы.
Ответ 3
Я почти уверен, что процессоры Atom с такой графикой никогда не рассматривались, когда WPF был в стадии проектирования и первой реализации. WPF находится в разработке более пяти лет назад, задолго до того, как графика GMA 500 была вокруг.
У вас могут быть лучшие результаты с помощью стека Silverlight 4, который, безусловно, предназначен для облегченных сред. Многое из того, что возможно в WPF, похоже или идентично в Silverlight. Если вы не используете 3D-графику WPF или какие-либо другие функции, вы, возможно, сможете получить легкий порт XAML.