powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Глубокие знание .Net платформы - а зачем?
25 сообщений из 168, страница 5 из 7
Глубокие знание .Net платформы - а зачем?
    #38691315
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2HomeCoderА у вас требования к графической карте выполнены? Для некоторых, даже довольно простых, приложений WPF, чтобы исполняться быстро, нужно видеопамяти от 512 МБ.

Вообще, там примерно так. 120 (считай, 128) МБ - это абсолютный минимум для пустого окна. Но, поскольку сама ОС тоже расходует видеопамять и вообще, то уже сразу минимумом становится 256 МБ. Ну и, если у вас достаточно сложный UI, то дальше - больше. Так что даже для средних программок, не перегруженных UI, думаю, от 512 МБ видеопамяти надо.

А то запустят на нетбуке трёлтеней давности с интегрированным видео, а поток ноют, что у них не 60 ФПС и "всё дёргается". Потому что, если памяти не хватает, то сразу всё начинает обрабатываться процессором, а не видеокартой - отсюда и тормоза.
К сожалению для тестирования мне не удалось найти машину у которой видеопамять меньше двух гигабайт
Тогда вступает в действие уже тормознутость и неоптимизированность самого WPF. А точнее, его подсистемы отрисовки.

Про память - это из официальных требований и собственных наблюдений и измерений.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691320
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderТак что даже для средних программок, не перегруженных UI, думаю, от 512 МБ видеопамяти надо.
Как по-вашему, вот такая программка по части перегруженности UI - средняя, или ниже среднего? На рабочем компьютере (Intel C2D E7500 2.39Гц, 3 Гб оперативки, 256 Мб видео, WinXP SP3) она бегает вполне без торможений. WPF4.0.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691351
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны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.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691364
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691369
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я предлагаю свой анализ событий вокруг WPF.



Именно неэффективность WPF при графических отрисовках - одна из причин, почему WPF не получает развития. МС пытается закрепиться на рынке мобильных устройств. У мобилок слишком мало мощей, чтобы работать с неэффективным WPF. Поэтому WPF не может стать основой для UI на мобилках. Чисто по возможностям, WPF может всё то же, что и Modern UI - плиточки эти пресловутые, мультитач (требует доработки, но невозможного ничего нет). А вот скорости отрисовки не хватает. Доходит до смешного. В Modern UI возможность показать дополнительную информацию на плитках преподносится как революция. С возможностями компоновки WPF это было "из коробки" ещё в 2008 году.

Я не понимаю, почему МС предпочитает не довести до ума то, что есть (оптимизировать графику WPF), а изобрести новое, переписать. Наверное, правы те слухи, что говорят, что в МС "соревнуются" несколько команд, которые на каждую неудачу у коллег предлагают "всё переписать".

Кстати, кто следит за новостями. Думаете, откуда пошла мода на плоские интерфейсы? Я считаю, что причина та же - производительность. Плитки в Modern UI - фон и текст. Ну, картинка какая-нибудь. Иконки в iOS - до 5 слоёв (была статья, где это разбиралось, да и сами разработчики, кто копался в кишках отрисовок там, тоже вкурсе, наверное), включая всякие тени, блики, размытия и альфа-смешивание (прозрачность). Добавьте сюда маркетинговую завлекающую фичу с анимациями интерфейса. В результате из иконок и анимаций в iOS наворотили такую байду, на которую уходила куча ресурсов железа. Эппл и Гугл поняли, что МС хитро сэкономили, не сильно потеряв в визуальном плане (за счёт "своего стиля" и вообще нельзя сказать, что интерфейс плиток хуже, чем размалёванные иконки с кучей эффектов), и получили преимущество - анимировать простые плитки и интерфейс вообще проще. Т. е. требуются меньше мощь железа, меньше батарея, можно обеспечить бОльшее время работы без потери привлекательности интерфейса ("плитки - говно" - вкусовщина, а не объективность, тем более, что плитки - конфетка
).

Вот только по мере развития мощностей мобильных устройств всё снова пойдёт по кругу - тени, блюры, закруглённые края (сложнее отрисовывать же), блики. Пока снова всё не упрётся, но уже в 8-5 нанометров. Давайте смотреть правде в глаза - мобилки, даже в планшетном варианте, никогда не доберутся до производительности сегодняшнего даже бюджетного десктопа за 300 долларов (без монитора). Их предел виден уже давно. А значит, участь WPF была предрешена тоже уже давно.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691370
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КHomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid.
Согласен. Только в анимациях можно и вообще без всяких моделей данных и датагридов тормоза узреть. Достаточно погонять по окну, развёрнутом на весь Full HD экран, простую кнопку или картинку.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691372
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.

Не говоря уже об уродской сериализации в код и многих других проблемах...
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691375
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Анимация WPF - полно гавно при быстрых перемещениях.Однако она мигающий фон TextBlock-а позволяет сделать секунд за 15. Большего от неё не требуется.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691378
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderДостаточно погонять по окну, развёрнутом на весь Full HD экран, простую кнопку или картинку.Есть такое. WPF, как и всё прочее, имеет свои преимущества и недостатки.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691385
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КWinForms этого не любит
это не проблема Forms, а проблема графического интерфейса Windows, работающего с координатами в физических пикселях.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691386
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилАлексей КWinForms этого не любит
это не проблема Forms, а проблема графического интерфейса Windows, работающего с координатами в физических пикселях.Да. И WPF решает эту проблему.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38691447
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderВот только по мере развития мощностей мобильных устройств

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

А особенности зрения - зона высокого разрешения очень маленькая.
Мы никогда не видим весь экран.
Я думаю, что эти особенности будут использованы для разгрузки графической части проэктивных экранов.
То есть, готовимся (мысленно) работать с большими кнопками и текстбоксами.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692367
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692397
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
HomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.
Мне интересно.
Я то же производил свое любительское расследование

Мне нужно было двигать объект в WinForms

Перемещение объекта

По рекомендации народа переписал проект на WPF с использованием анимации.

Выяснилось, что движение объекта с большой скоростью одинаково плохо выглядит в обоих вариантах.
Причем разницы между ними я не заметил.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692560
gpu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КHomeCoderА именно на анимациях все тормоза и проявляются.Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid.
мой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта.
первые версии стилей и прочих приблуд для впф приводили к 50% потере производительностьи при наличии более 20 записей в гриде.

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

результаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных.

правда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.

сдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии.
но сваливать проблемы на технологию значительно проще
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692588
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpuрезультаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных.Для "формочки" - что на винформах, что на впф, не говоря про веб - "большое количество данных" начинается с двух экранов прокрутки. Это примерно пара сотен записей "в гриде" - и больше пользователю и не нужно...
gpuправда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.За счет переписывания запросов к базе данных повысить скорость прорисовки формы - это сильно... :)
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692609
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpuмой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта.Само собой, кривизна рук влияет. Например, помещение UserControl в DataGridCell добавит тормозов по понятным причинам.
gpuтаки можно получить впф формочку которая летает на большом количестве данных.Тормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации.
gpuсдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии.
но сваливать проблемы на технологию значительно прощеТормоза появляются с дефолтным DataGrid или Grid + SharedSizeScope на разумном количестве элементов без лишних бантиков. Что я ещё должен думать? Говорят, многое зависит от количества ResourceDictionary, в том числе вложенных. Но я не собираюсь ради этого пихать все ресурсы в одну.
sphinx_mvgpuправда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.За счет переписывания запросов к базе данных повысить скорость прорисовки формы - это сильно... :)Ага, мне тоже понравилось. :-)
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692611
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692625
HomeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gpuАлексей Кпропущено...
Там без анимаций тормозов хватает. Тяжёлая модель данных DependencyProperty даёт о себе знать в, например, DataGrid.
мой опыт показывает что достаточно часто проблема в комбинации степени кривизны рук и отсутствием опыта.
первые версии стилей и прочих приблуд для впф приводили к 50% потере производительностьи при наличии более 20 записей в гриде.

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

результаты превзошли мои ожидания:таки можно получить впф формочку которая летает на большом количестве данных.

правда оптимизировали все:от запросов к базе до логики отображения данных в UI, включая стилей.

сдается мне ,что в 70% случаев проблема в коде и или дизайне. Оставшиеся 30% ограничения технологии.
но сваливать проблемы на технологию значительно проще
Попробуйте тестировать технологию не на каких-то навороченных гридах, а на простых элементах. Погоняйте кнопочку по пустому окну. Только окно сделайте на весь экран и экран чтобы был с разрешением 1920х1080, как это сейчас заведено. Ну и где 60 ФПС? Где вообще хотя бы 30? Сделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено. Конечно, на мощном CPU это будет не так заметно.

А то у вас за датагридами леса не видно.

Алексей КHomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает.
А железо у вас какое было? А то, может, на современной игровой конфигурации делали. Только это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF".

А чем VisualBrush помогает при отрисовке графика с большим количеством элементов?

Алексей КТормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации.
Если у вас не миллионы записей в гридах и вообще данных не сильно много, то основные тормоза в WPF - именно в отрисовках. Т. е. в количестве элементов и сложности их поведения и вида (анимации есть-нет, градиенты и прозрачность есть-нет, сложные формы и закругления есть-нет, эффекты есть-нет). Чтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихать и юзерконтролы с большой вложенностью делать - это уже действительно кривизна рук.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692665
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderСделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено.
HomeCoderТолько это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF".
Одному мне видится некоторое несоответствие между содержимым первой цитаты, и выделенным текстом во второй?
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692666
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderАлексей Кпропущено...
Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает.
А железо у вас какое было? А то, может, на современной игровой конфигурации делали.Обычное офисное железо. Процессор ничё так, видеокарта так себе.
HomeCoderА чем VisualBrush помогает при отрисовке графика с большим количеством элементов?Уменьшение количества UIElement-ов за счёт клонирования brush-ей.
HomeCoderАлексей КТормоза зависят от количества отображаемых элементов на экране, а не от объёма данных, при правильном применении виртуализации.
Если у вас не миллионы записей в гридах и вообще данных не сильно много, то основные тормоза в WPF - именно в отрисовках.Вы пытаетесь убедить меня силой мысли?
HomeCoderЧтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихатьСделайте поле для игры "сапёр", заполните форму кнопками. Там видно будет.
HomeCoderи юзерконтролы с большой вложенностью делать - это уже действительно кривизна рук.... или постановка задачи.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692685
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HomeCoderЧтобы WPF тормозил от данных, а не от отрисовок, надо этих данные миллионами в гриды пихать.А вот это не так, при включенной виртуализации.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692687
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныHomeCoderСделайте анимацию с прозрачностью, с поворотами и перемещениями по окну - дёргание обеспечено.
HomeCoderТолько это как бы немного... необычно звучит - "вам нужен современный игровой ПК для решения обычных офисных задач - потому что WPF".
Одному мне видится некоторое несоответствие между содержимым первой цитаты, и выделенным текстом во второй?Офисные инновации? :-)
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38692938
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КHomeCoder Почему в WPF тормозят анимации и почему вообще он тормозит. Моё любительское исследование, кому интересно.Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. я уже стал забыить про WPF. Дайте тынц на пример. Для общего развития.
...
Рейтинг: 0 / 0
Глубокие знание .Net платформы - а зачем?
    #38693014
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей Кпропущено...
Делали отрисовку графика с большим количеством элементов через VisualBrush. Всё летает. я уже стал забыить про WPF. Дайте тынц на пример. Для общего развития.На "это" тынца нет. Могу дать тынц только на MSDN про VisualBrush. :-)
...
Рейтинг: 0 / 0
25 сообщений из 168, страница 5 из 7
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Глубокие знание .Net платформы - а зачем?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]