Имеет ли эффективность рендеринга серьезное снижение в случае, если XAML приложения WPF содержит лот вложенных Grid
, StackPanel
, DockPanel
и других контейнерах?Является ли вложенность контейнеров в XAML влиять на производительность рендеринга?
ответ
WPF использует MeasureOverride
и ArrangeOverride
методы для рендеринга UIElements. MeasureOverride
измерять ширину и размер UIElements на основе элементов управления родительскими элементами. Ширина и размер. ArrangeOVerride
способ будет организовывать UIElements во время выполнения на основе этих мер. Эти методы оптимизированы для повышения производительности и не должны вызывать проблемы с производительностью.
Но должна быть емкость, в которой эти методы могут обрабатывать UIElements в течение минимального времени. Если этот предел превышает это, проблема с производительностью.
например: предположим, что на велосипеде могут нести 2 человека. если 5 человек перегружен, что будет :)
Jet Мозги .Trace является инструментом для анализа проблем с производительностью, которая будет помогает увидеть эти два метода
Спасибо, приятель. Я обновлю свой ответ :) –
Эти ответы, похоже, зависят от того, «если вы сделаете это слишком медленно, это будет медленная» логика. – Gusdor
При создании очень сложный интерфейс, с большим количеством вложенных объектов и DataTemplate с множеством элементов, вы можете серьезно повлиять на производительность приложения, потому что чем больше UI Tree, тем больше будет рендеринга, и если инфраструктура не сможет отобразить в 30FPS, вы начнете видеть падение производительности. Вы должны использовать самые легкие панели, которые вам нужны, чтобы избежать дополнительной логики, в которой вам не понадобилось. Вот некоторые советы по улучшению производительности для того, чтобы сделать вас App быстрее:
http://msdn.microsoft.com/en-us/library/bb613542(v=vs.110).aspx
Хорошая ссылка, особенно в отношении выбора вашей панели 's тщательно. Никто еще не заметил, что не все панели равны. «Grid» универсален, но его логика визуализации более активна. Если вам действительно не нужно его использовать, не делайте этого! – Olly
Точно, например, в Winwodws 8.1 вся логика, относящаяся к выбору элемента, была удалена, чтобы сделать ItemContainers более тонкими и быстрыми. Я рекомендую вам прочитать этот пост об улучшении производительности в приложениях XSLL для Windows 8.1, поскольку он также применим к приложениям WPF. http://msdn.microsoft.com/en-us/library/windows/apps/hh994641.aspx Надеюсь, что это поможет! – toroveneno
Действительно ответ просто «да». Больше всего будет использовать больше процессорного времени. СЮРПРИЗ!
В случае WPF элементы расположены в иерархическом графике . Добавление уровней глубины к этому графику замедлит ваше приложение больше, чем добавление братьев и сестер к существующим элементам. Вы всегда должны стремиться к тому, чтобы глубина графика была низкой. Рассмотрите возможность использования Grid
вместо гнездования StackPanel
s.
Так почему же глубина важнее, чем счетчик сырого элемента? Ну, глубина обычно подразумевает;
- зависимость компоновки - если родитель переделан, ребенок, вероятно, будет повторно отображен.
- окклюзия - если два элемента перекрываются, то аннулирование одного может часто приводить к недействительности другого.
- Рекурсия - большинство операций с графиком - Связанные с процессором - они полностью зависят от скорости процессора и не имеют специальной аппаратной поддержки (рендеринг использует графический чип там, где это возможно). Затраты на велосипеде по уровням графика для ресурсов и обновлений макетов дорого.
Что касается окклюзии, класс BitmapCache
может очень помочь!
- 1. Будет ли метод позиции css влиять на производительность рендеринга браузера?
- 2. Является ли качество цвета виртуальной машины влиять на ее производительность?
- 3. Является ли позиция операторов импорта python влиять на производительность
- 4. Является ли версия визуальной студии влиять на производительность скомпилированного приложения?
- 5. Является ли LIMIT влиять на производительность запросов шифрования neo4j?
- 6. Является ли использование виртуальной среды влиять на производительность веб-приложения?
- 7. Является ли агент SQL Server влиять на производительность SQL Server?
- 8. Может ли распараллеливание отрицательно влиять на производительность?
- 9. Могут ли печенье влиять на производительность?
- 10. Загрязняет ли объект $ scope влиять на производительность?
- 11. Может ли «//» влиять на производительность HTTP-запроса?
- 12. Будет ли запрос NHibernate влиять на производительность?
- 13. Будет ли console.log влиять на производительность async?
- 14. Будут ли исключения влиять на производительность приложения?
- 15. Может ли слишком много каротажа влиять на производительность веб-приложения?
- 16. Является ли указатель заполнения влиять на GC?
- 17. Производительность сканирования контейнеров IOC
- 18. Может ли файл на основе CacheDependency отрицательно влиять на производительность?
- 19. В Java, следует ли использовать переменные «ярлык» влиять на производительность?
- 20. Имеет ли пробел в URI влиять на производительность?
- 21. Будут ли многие предложения влиять на производительность запросов
- 22. Является ли порядок столбцов в закрытом индексе в Sybase влиять на производительность?
- 23. Является ли порядок полей в предложении WHERE влиять на производительность в MySQL?
- 24. Является ли команда на основе стека одним из самых важных факторов влиять на производительность Java?
- 25. Будут ли бессмысленные точки с запятой влиять на производительность?
- 26. Могут ли возможности GPU влиять на производительность виртуальной машины?
- 27. Могут ли комментарии/идентификаторы влиять на производительность/работоспособность кода?
- 28. Производительность одновременных контейнеров tbb
- 29. Могут ли протокольные записи влиять на производительность приложений?
- 30. Будет ли значительное состояние редукции влиять на производительность моего приложения?
Попробуй и посмотри? –
@ SonerGönül Интересует фундаментальный ответ (например, что, если CLR оптимизирует этот код определенным образом) –
@ SonerGönül остановить троллинг SO и внести что-то полезное, помимо переформатирования каждого вопроса под солнцем.Этот вопрос сложный и перфорированный, это не тривиальная операция. – Gusdor