Действительно ли WPF является причиной, мое приложение является медленным?

Благодаря ответу Jeremy Lew и немного большему количеству игры вокруг, я выяснил, как удалить атрибуты пробела xmlns: передача в пространстве имен корневого узла при создании любого дочернего узла Вы хотите не иметь префикс на. Используя пространство имен без префикса в корневых средствах, что необходимо использовать то же самое пространство имен на дочерних элементах для них к также не, имеют префиксы.

Фиксированный Код:

XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root", "whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner", "whatever:name-space-1.0")); 
Console.WriteLine(xml.OuterXml);

Спасибо все ко всем Вашим ответам, которые привели меня в правильном направлении!

11
задан Dan Vogel 12 December 2009 в 00:52
поделиться

5 ответов

Вы можете детализировать, какие действия WPF используют время безотказной работы, с помощью средств профилирования производительности для WPF . Предполагая, что большая графическая нагрузка вызывает замедление, это должно помочь вам в том, что может потребоваться упростить (например, макеты) или удалить (например, эффекты растровых изображений (это классический убийца производительности, хотя я не хочу предвосхищать Ваш профайл!)).

11
ответ дан 3 December 2019 в 04:52
поделиться

Если это WPF вызывает замедление

Скорее всего, нет;)

Гораздо более вероятно, что это ваш код , который вызывает замедление. WPF - это мощный инструмент, но вы должны понимать основные концепции, чтобы он работал хорошо ... Вы должны посмотреть это видео из сеанса PDC, в нем содержится множество советов о том, как сделать свой WPF приложение быстрее

5
ответ дан 3 December 2019 в 04:52
поделиться

Производительность WPF во многом зависит от качества видеокарты в машине. что процессор / память. Плохая видеокарта = плохая производительность WPF.

1
ответ дан 3 December 2019 в 04:52
поделиться

Ну, это длинный план : когда я установил VSTS 2010 (и он использует WPF), он был очень медленным на сервере Windows 2008 с достаточным количеством ЦП / памяти и очень быстрым в более скромном ноутбуке. Нам удалось отключить аппаратное ускорение, и на этой машине оно стало заметно быстрее.

Возможно, вы захотите попробовать эту конфигурацию, поскольку она очень проста: Исправление производительности редактора Visual Studio 2010 Beta 2, работающее на виртуальной машине

1
ответ дан 3 December 2019 в 04:52
поделиться
  1. Преобразуйте векторные изображения кнопок XAML в прозрачные изображения PNG. Путь и фигуры очень тяжело визуализировать, вычислять и изменять размер. В большинстве случаев после развертывания изображения никогда не меняются. Лучше сделать их растровыми, а не векторными, если вы не хотите выполнять плавную анимацию изменения формы, размера или других атрибутов.

  2. Сетки - очень дорогие менеджеры компоновки по сравнению с Canvas, DockPanel. Вы, конечно, можете иногда подумать о замене определенных сеток на DockPanel, но да, это непростое решение, требующее много мозгового штурма.

  3. Избегайте Panel с Single Child. Постарайтесь уменьшить визуальную иерархию.

  4. Используйте больше фиксированного размера для кнопок и таких небольших элементов, если вы укажете фиксированные размеры дочерних элементов, для панелей станет легко выполнять обработку макета.

4
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: