Сообщение Re: GDI+ - супер тормоз? от 24.11.2022 13:20
Изменено 25.11.2022 9:20 Pauel
Re: GDI+ - супер тормоз?
Здравствуйте, Marty, Вы писали:
M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.
За такое время можно скачать картинку по хттп и нарисовать её жээсом.
M>Кто виноват и что делать?
10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.
Покажи, что именно ты рисуешь.
Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.
M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.
За такое время можно скачать картинку по хттп и нарисовать её жээсом.
M>Кто виноват и что делать?
10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.
Покажи, что именно ты рисуешь.
Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.
Re: GDI+ - супер тормоз?
Здравствуйте, Marty, Вы писали:
M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.
За такое время можно скачать картинку по хттп и нарисовать её жээсом.
M>Кто виноват и что делать?
10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.
Покажи, что именно ты рисуешь.
Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.
Для примера — если логическую область сделать в логических единицах от -50млн до +50млн, и попытаться нарисовать линию стилем dash от одного края, до другого не прямо, а наискосок, то рисование такой линии занимает секунды и линия может оказаться изогнутой на экране, т.е. пройдет совсем не там, куда бы она попала если стиль solid
M>У меня через GDI+ рисуется порядка сотни прямоугольников с закругленными углами. Вот просто на глаз видно, как они медленно и печально появляются на экране. Произвел замер — время отрисовки колеблется от 50 мс до 250 мс. Это чудовищно долго. И не понятно, почему время отрисовки так скачет.
За такое время можно скачать картинку по хттп и нарисовать её жээсом.
M>Кто виноват и что делать?
10 лет назад у меня .net. system.drawing который под капотом GDI+ уверенно рисовал порядка 10..15тыс примитивов в секунду.
Это если без шрифтов. Со шрифтами намного меньше.
Покажи, что именно ты рисуешь.
Проблемы с гди+ возможны, и в странных местах — например, если логические координаты слишком большие или когда часть рендеринга идет мимо видимой области. Лучше отключить всё такое, включая клиппинг, и делать это самому. Тогда сюрпризов меньше будет.
Для примера — если логическую область сделать в логических единицах от -50млн до +50млн, и попытаться нарисовать линию стилем dash от одного края, до другого не прямо, а наискосок, то рисование такой линии занимает секунды и линия может оказаться изогнутой на экране, т.е. пройдет совсем не там, куда бы она попала если стиль solid