|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Cat2HomeCoderА у вас требования к графической карте выполнены? Для некоторых, даже довольно простых, приложений WPF, чтобы исполняться быстро, нужно видеопамяти от 512 МБ. Вообще, там примерно так. 120 (считай, 128) МБ - это абсолютный минимум для пустого окна. Но, поскольку сама ОС тоже расходует видеопамять и вообще, то уже сразу минимумом становится 256 МБ. Ну и, если у вас достаточно сложный UI, то дальше - больше. Так что даже для средних программок, не перегруженных UI, думаю, от 512 МБ видеопамяти надо. А то запустят на нетбуке трёлтеней давности с интегрированным видео, а поток ноют, что у них не 60 ФПС и "всё дёргается". Потому что, если памяти не хватает, то сразу всё начинает обрабатываться процессором, а не видеокартой - отсюда и тормоза. К сожалению для тестирования мне не удалось найти машину у которой видеопамять меньше двух гигабайт Тогда вступает в действие уже тормознутость и неоптимизированность самого WPF. А точнее, его подсистемы отрисовки. Про память - это из официальных требований и собственных наблюдений и измерений. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 05:41 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderТак что даже для средних программок, не перегруженных UI, думаю, от 512 МБ видеопамяти надо. Как по-вашему, вот такая программка по части перегруженности UI - средняя, или ниже среднего? На рабочем компьютере (Intel C2D E7500 2.39Гц, 3 Гб оперативки, 256 Мб видео, WinXP SP3) она бегает вполне без торможений. WPF4.0. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 06:30 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныHomeCoderТак что даже для средних программок, не перегруженных UI, думаю, от 512 МБ видеопамяти надо. Как по-вашему, вот такая программка по части перегруженности UI - средняя, или ниже среднего? На рабочем компьютере (Intel C2D E7500 2.39Гц, 3 Гб оперативки, 256 Мб видео, WinXP SP3) она бегает вполне без торможений. WPF4.0. Она на WPF написана? Да, это сложная по UI программа. В смысле, что достаточно сложная, чтобы потребить достаточно много видеопамяти. То, что она "бегает", не значит, что она работает при 60 ФПС без проседаний. К тому же, в ней нет анимаций, скорее всего. А именно на анимациях все тормоза и проявляются. Попробуйте всю эту сложную компоновку анимировать - должно появиться дёргание - т. е. там и 30 ФПСами не пахнет. Штука в том, что отрисовка статичных окон не проблема и для CPU. Они отрисовываются, грубо говоря, за 1 кадр. Просто этот кадр задерживается, пока графическая подсистема весь UI не отрисует. Когда у вас анимации, то задерживаться приходится на каждый кадр - ведь весь UI приходится перерисовывать. С этой проблемой можно столкнуться и без презентационных анимаций. Например, я сейчас делаю приложение, в реальном времени обновляющее графики (Dynamic Data Dysplay). Например, на график много раз в секунду (столько, сколько успевает процессор) добавляется 1) одна точка, 2) множество точек. И если в 1) графика успевает перерисовываться сносно и я получаю плавную отрисовку "прирастающего" графика, то в 2), если за раз добавляется сразу по 1000 точек (да даже по 100), то видно дёргание. Графическая подсистема просто выбрасывает не успевшие отрисоваться приращения. Т. е. фактически рендерится каждое, скажем, пятое приращение. Точнее, суммарный результат после пятого приращения. Т. е. как будто не 1000 точек приросло, а 5000. При этом приращение данных графика делается в другом потоке (смотрел на Диспетчере Задач - двухъядерный процессор занят на 100%) - т. е. UI ничего не мешает заниматься только отрисовкой. Кроме того, есть подозрение (но я точно не знаю), что WPF не получает аппаратного ускорения при отключенном Aero на Висте и 7. А у вас на скриншоте, судя по всему, всключена классическая тема UI - без Aero. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 07:57 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:15 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Я предлагаю свой анализ событий вокруг WPF. Именно неэффективность WPF при графических отрисовках - одна из причин, почему WPF не получает развития. МС пытается закрепиться на рынке мобильных устройств. У мобилок слишком мало мощей, чтобы работать с неэффективным WPF. Поэтому WPF не может стать основой для UI на мобилках. Чисто по возможностям, WPF может всё то же, что и Modern UI - плиточки эти пресловутые, мультитач (требует доработки, но невозможного ничего нет). А вот скорости отрисовки не хватает. Доходит до смешного. В Modern UI возможность показать дополнительную информацию на плитках преподносится как революция. С возможностями компоновки WPF это было "из коробки" ещё в 2008 году. Я не понимаю, почему МС предпочитает не довести до ума то, что есть (оптимизировать графику WPF), а изобрести новое, переписать. Наверное, правы те слухи, что говорят, что в МС "соревнуются" несколько команд, которые на каждую неудачу у коллег предлагают "всё переписать". Кстати, кто следит за новостями. Думаете, откуда пошла мода на плоские интерфейсы? Я считаю, что причина та же - производительность. Плитки в Modern UI - фон и текст. Ну, картинка какая-нибудь. Иконки в iOS - до 5 слоёв (была статья, где это разбиралось, да и сами разработчики, кто копался в кишках отрисовок там, тоже вкурсе, наверное), включая всякие тени, блики, размытия и альфа-смешивание (прозрачность). Добавьте сюда маркетинговую завлекающую фичу с анимациями интерфейса. В результате из иконок и анимаций в iOS наворотили такую байду, на которую уходила куча ресурсов железа. Эппл и Гугл поняли, что МС хитро сэкономили, не сильно потеряв в визуальном плане (за счёт "своего стиля" и вообще нельзя сказать, что интерфейс плиток хуже, чем размалёванные иконки с кучей эффектов), и получили преимущество - анимировать простые плитки и интерфейс вообще проще. Т. е. требуются меньше мощь железа, меньше батарея, можно обеспечить бОльшее время работы без потери привлекательности интерфейса ("плитки - говно" - вкусовщина, а не объективность, тем более, что плитки - конфетка ). Вот только по мере развития мощностей мобильных устройств всё снова пойдёт по кругу - тени, блюры, закруглённые края (сложнее отрисовывать же), блики. Пока снова всё не упрётся, но уже в 8-5 нанометров. Давайте смотреть правде в глаза - мобилки, даже в планшетном варианте, никогда не доберутся до производительности сегодняшнего даже бюджетного десктопа за 300 долларов (без монитора). Их предел виден уже давно. А значит, участь WPF была предрешена тоже уже давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:21 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Алексей КHomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid. Согласен. Только в анимациях можно и вообще без всяких моделей данных и датагридов тормоза узреть. Достаточно погонять по окну, развёрнутом на весь Full HD экран, простую кнопку или картинку. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:23 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Cat2HomeCoderWPF - презентационная графика. Т. е. чтобы всё красиво мигало и блестело. Плюс анимации, и довольно сложные, в WPF из коробки легко делаются. На формах задолбаетесь OnPaint насиловать. Я просто балдею от разработки интерфейса на WPF. Меня сразу пробивает на ностальжи, когда HTML-страницы писались в Блокноте. И на клиппер, когда реальный вид программы может быть увиден только после компиляции и контрольного запуска.Дизайнер зло, даже если разрабатывается статичная форма, которую можно отрисовать в design-time. Нужно декларативно задавать принцип построения UI, а не сам UI. XAML и HTML с этим справляются без всяких дизайнеров. UI получается строже, модифицируется лучше. Тут от IDE требуется только code-complete. В VS он есть. Cat2Это просто забавная лотерея, как будет выглядить окно, если я его разрабатываю на машине с экраном 1920x1200, а работать оно должно на на других разрешениях и пропорциях.А вот как раз расчёт размеров контролов по содержимому - это сильная сторона компоновки UI в XAML. А ещё есть проблема с изменяемым DPI экрана. WinForms этого не любит. Отчасти TableLayoutPanel решает проблему. А в WPF нет проблем с изменяемым DPI. Не говоря уже об уродской сериализации в код и многих других проблемах... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:25 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Cat2Анимация WPF - полно гавно при быстрых перемещениях.Однако она мигающий фон TextBlock-а позволяет сделать секунд за 15. Большего от неё не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:27 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderДостаточно погонять по окну, развёрнутом на весь Full HD экран, простую кнопку или картинку.Есть такое. WPF, как и всё прочее, имеет свои преимущества и недостатки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:30 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Алексей КWinForms этого не любит это не проблема Forms, а проблема графического интерфейса Windows, работающего с координатами в физических пикселях. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:39 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
ИзопропилАлексей КWinForms этого не любит это не проблема Forms, а проблема графического интерфейса Windows, работающего с координатами в физических пикселях.Да. И WPF решает эту проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 08:40 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderВот только по мере развития мощностей мобильных устройств Следующий шаг в мобильных устройствах - это проэкторные экраны в глаз. По своей сути они должны быть полупрозрачными - чтобы не загораживать все. А особенности зрения - зона высокого разрешения очень маленькая. Мы никогда не видим весь экран. Я думаю, что эти особенности будут использованы для разгрузки графической части проэктивных экранов. То есть, готовимся (мысленно) работать с большими кнопками и текстбоксами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 09:39 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 20:38 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно. Мне интересно. Я то же производил свое любительское расследование Мне нужно было двигать объект в WinForms Перемещение объекта По рекомендации народа переписал проект на WPF с использованием анимации. Выяснилось, что движение объекта с большой скоростью одинаково плохо выглядит в обоих вариантах. Причем разницы между ними я не заметил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 21:40 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Алексей КHomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid. мой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта. первые версии стилей и прочих приблуд для впф приводили к 50% потере производительностьи при наличии более 20 записей в гриде. как раз сегодня было очередное ревью по результатам повышения быстродействия тяжело нагруженной формы. результаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных. правда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей. сдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии. но сваливать проблемы на технологию значительно проще ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 01:31 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
gpuрезультаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных.Для "формочки" - что на винформах, что на впф, не говоря про веб - "большое количество данных" начинается с двух экранов прокрутки. Это примерно пара сотен записей "в гриде" - и больше пользователю и не нужно... gpuправда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.За счет переписывания запросов к базе данных повысить скорость прорисовки формы - это сильно... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 02:37 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
gpuмой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта.Само собой, кривизна рук влияет. Например, помещение UserControl в DataGridCell добавит тормозов по понятным причинам. gpuтаки можно получить впф формочку которая летает на большом количестве данных.Тормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации. gpuсдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии. но сваливать проблемы на технологию значительно прощеТормоза появляются с дефолтным DataGrid или Grid + SharedSizeScope на разумном количестве элементов без лишних бантиков. Что я ещё должен думать? Говорят, многое зависит от количества ResourceDictionary, в том числе вложенных. Но я не собираюсь ради этого пихать все ресурсы в одну. sphinx_mvgpuправда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.За счет переписывания запросов к базе данных повысить скорость прорисовки формы - это сильно... :)Ага, мне тоже понравилось. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 06:06 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 06:10 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
gpuАлексей Кпропущено... Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid. мой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта. первые версии стилей и прочих приблуд для впф приводили к 50% потере производительностьи при наличии более 20 записей в гриде. как раз сегодня было очередное ревью по результатам повышения быстродействия тяжело нагруженной формы. результаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных. правда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей. сдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии. но сваливать проблемы на технологию значительно проще Попробуйте тестировать технологию не на каких-то навороченных гридах, а на простых элементах. Погоняйте кнопочку по пустому окну. Только окно сделайте на весь экран и экран чтобы был с разрешением 1920х1080, как это сейчас заведено. Ну и где 60 ФПС? Где вообще хотя бы 30? Сделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено. Конечно, на мощном CPU это будет не так заметно. А то у вас за датагридами леса не видно. Алексей КHomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. А железо у вас какое было? А то, может, на современной игровой конфигурации делали. Только это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF". А чем VisualBrush помогает при отрисовке графика с большим количеством элементов? Алексей КТормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации. Если у вас не миллионы записей в гридах и вообще данных не сильно много, то основные тормоза в WPF - именно в отрисовках. Т. е. в количестве элементов и сложности их поведения и вида (анимации есть-нет, градиенты и прозрачность есть-нет, сложные формы и закругления есть-нет, эффекты есть-нет). Чтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихать и юзерконтролы с большой вложенностью делать - это уже действительно кривизна рук. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 07:31 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderСделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено. HomeCoderТолько это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF". Одному мне видится некоторое несоответствие между содержимым первой цитаты, и выделенным текстом во второй? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 08:46 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderАлексей Кпропущено... Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. А железо у вас какое было? А то, может, на современной игровой конфигурации делали.Обычное офисное железо. Процессор ничё так, видеокарта так себе. HomeCoderА чем VisualBrush помогает при отрисовке графика с большим количеством элементов?Уменьшение количества UIElement-ов за счёт клонирования brush-ей. HomeCoderАлексей КТормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации. Если у вас не миллионы записей в гридах и вообще данных не сильно много, то основные тормоза в WPF - именно в отрисовках.Вы пытаетесь убедить меня силой мысли? HomeCoderЧтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихатьСделайте поле для игры "сапёр", заполните форму кнопками. Там видно будет. HomeCoderи юзерконтролы с большой вложенностью делать - это уже действительно кривизна рук.... или постановка задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 08:47 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
HomeCoderЧтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихать.А вот это не так, при включенной виртуализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 09:17 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныHomeCoderСделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено. HomeCoderТолько это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF". Одному мне видится некоторое несоответствие между содержимым первой цитаты, и выделенным текстом во второй?Офисные инновации? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 09:19 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
Алексей КHomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. я уже стал забыить про WPF. Дайте тынц на пример. Для общего развития. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 12:06 |
|
Глубокие знание .Net платформы - а зачем?
|
|||
---|---|---|---|
#18+
netivanАлексей Кпропущено... Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. я уже стал забыить про WPF. Дайте тынц на пример. Для общего развития.На "это" тынца нет. Могу дать тынц только на MSDN про VisualBrush. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2014, 12:38 |
|
|
start [/forum/topic.php?fid=20&msg=38691375&tid=1402703]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 554ms |
total: | 734ms |
0 / 0 |