Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: GDI vs GDI+ Добавлено: 14.04.05 19:41  

Автор вопроса:  Artyom

Ответить

  Ответы Всего ответов: 45  

Номер ответа: 31
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #31 Добавлено: 15.04.05 22:54
В общем я сделал такой вывод: Артем не разбирается в сути того, что он использует, но считает, что оно лучше, чем что-либо. GDI - это основа графики в Windows ....

Слушай, брателло, ты принимаешь участие в бенчмаркинге? Нет? Тогда будь добр, просто промолчи, про себя подумай - ах, какой Аретм плохой, так ему и надо, а высказываться зедсь опять не нужно.
Просто тот факт, что ты по каждой теме хочешь что-то сказать, даже если тема тебя не касается, меня бесит.
Извини, хотел тебе это на мыло написать но, кажется, оно у тебя не работает, видимо.
Короче, это не по теме.
И плз, если хочешь ответить, ответь мне на мыло:
artyom@soobcha.org, а опять показывать какой ты умный не надо - все это и так знают.

Ответить

Номер ответа: 32
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #32 Добавлено: 15.04.05 23:17
Итак, я имею такие результаты пока:

Результаты сортируются в порядку увеличения времени.
Каждую процедуру запускаю по 5 раз, результат усредняю.
Мой код тоже выполняет 10 итераций, потом результат делит на 10.
Код GSerg выполняет только одну итерацию.
Результаты приводятся в мс.

Рисование линейной градиентной заливки и 40-угольника, каждые в вершины которого соединены между собой линиями
Рисование на dc окна:

cresta 366.6
GSerg 442.8
Artyom 8576.4

Я пока не могу объяснить причину такого отставания .NET - но подозреваю, что проблема с моей системой, ждем еще результатов crest'ы.

Также следует отметить, сто cresta сжульничал - рисует не диагональный градиент, а горизонтальный.

Рисование на dc битмапа:
cresta 104.8
Artyom 111.2
GSerg не принимал участие - жду себе на мыло и твой пример.

Итак, какие я могу сделать выводы.
Мы видим, что скорость работы GDI и GDI+ при выполнении элементарных операций практически не отличаются при условии вывода в битмап - разница составляет порядка 6-7%.
Также видим, что предварительное рисование в dc битмапа и последующий перенос изображения не только не замедляет работу, но и ускоряет ее.

Прокоментировать первый тест я не могу - что-то реально не то с моей машиной.

Кроме того, о квалификации программиста, комп которого работает в 100 раз медленнее при прочих равных, можно составлять анекдоты :)

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

Ответить

Номер ответа: 33
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #33 Добавлено: 16.04.05 00:53
Для начала я жду объяснений по поводу заявления, что я жульничал.

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

Я жду.
Затем тебя ожидает ещё один неприятный момент.

Ответить

Номер ответа: 34
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #34
Добавлено: 16.04.05 01:35
Слушай, брателло, ты принимаешь участие в бенчмаркинге? Нет? Тогда будь добр, просто промолчи
Слушай, брателло, ты этот форум весь приватизировал или только право на тупость в нем? Форум общий и каждый может отвечать на вопросы, если придерживается правил.
Просто тот факт, что ты по каждой теме хочешь что-то сказать, даже если тема тебя не касается, меня бесит.
А меня радует тот факт, что твои посты резко улучшают мое настроение :)
Извини, хотел тебе это на мыло написать но, кажется, оно у тебя не работает, видимо.
И опять вранье, все у меня работает.
И плз, если хочешь ответить, ответь мне на мыло:
artyom@soobcha.org, а опять показывать какой ты умный не надо - все это и так знают.
Ты первым демонстративно запостил это, якобы у меня мыло не работает, так что и я отвечу тем же. А вообще, не выходил бы ты за рамки темы "эээээ", вдруг кто-то тебя всерьез воспримет, не прочитав ее?
Либо ты мне показываешь, где было оговорено, какой тип градиента должен быть, либо приносишь публичные извинения.
Нигде этого не было, просто Артемка похамить любит.

Ответить

Номер ответа: 35
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #35 Добавлено: 16.04.05 02:30
Для начала я жду объяснений по поводу заявления, что я жульничал.

Все объяснения я уже приводил.

Я рисовал диагональный градиент
GSerg рисовал диагональный градиент.
Если ты решил, что ты умнее всех и можешь рисовать обычный горизонтальный градиент, то бог тебе судья.

Свое мнение по этому вопросу я уже высказал.
Никаких извинений тебе приносить не будут.

Я жду.
Затем тебя ожидает ещё один неприятный момент.

Ответить

Номер ответа: 36
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #36 Добавлено: 16.04.05 02:30
сори, последнюю цитату не удалил.

Ответить

Номер ответа: 37
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #37
Добавлено: 16.04.05 03:29
Я рисовал диагональный градиент
GSerg рисовал диагональный градиент.
Если ты решил, что ты умнее всех и можешь рисовать обычный горизонтальный градиент, то бог тебе судья.
То, что ты рисовал диагональный градиент - это твои личные тараканы. То, что GSerg рисовал диагональный градиент - это его свободный выбор. Какой градиент рисовать, нигде не указывалось. Если ты считаешь себя обиженным этим фактом, извинись и поставь дополнительное условие.

Ответить

Номер ответа: 38
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #38 Добавлено: 16.04.05 03:38
Я не обращал внимания на твой код. Это первое.

Сейчас я сделал диагональный градиент. Рисует также, как и горизонтальный. Один в один.
Поэтому твои предположения о жульничестве пусть останутся на твоей совести.

Видимо ты не думал, что я закачаю framework и поверю твоим словам. Ты ошибся. Я его закачал. И установил. И запустил твою программу. То, что я увидел, мне не нравится.

Объясняю по пунктам, следи за мыслью:

GSerg прислал мне свой пример, но в нем один нюанс - он рисует прямо на PictureBox, а я - сначала в битмап в памяти, а потом этот битмап ложу на форму.

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

1.
После загрузки frameworka и запуска твоей программы сразу бросилось в глаза такое дело:
Я вижу, как рисуются последовательно все лучи, соединяющие вершины многоугольника. Идет последовательно по кругу отрисовка из каждой вершины круга. Если бы ты рисовал так же, как я, то процесса отрисовки лучей не было бы видно, т.к. это происходило бы в памяти. А после копировалось бы. НО: копирование не делается отдельно для каждого луча, и оно не делается ПО КРУГУ. Копируется растром. И весь рисунок сразу, не по одному лучу, т.к. в памяти нет отдельных лучей, есть только весь рисунок целиком.

2.
Далее, видя такое дело, я свернул твоё окно, и убрал за край экрана так, чтобы была видна только полоска с левой стороны формы, вмещающая только кнопку. Сам прямоугольный участок, на котором должно рисоваться - остался за экраном. И нажал кнопку. Угадай, сколько выскочило в MsgBox'е ? Правильно: 00:00:00. Твой битмап, который ты якобы рисуешь в памяти, не может отрисоваться за 0. Ни при каких условиях. Значит, ты его не рисуешь. Ты рисуешь сразу на dc формы, что подтверждается и тем, что я вижу, как по кругу отрисовываются лучи. Поэтому, когда рект находится за экраном, функция, заливающая окно и ф-ция, рисующая лучи, ничего не делают. Потому, что некуда рисовать. Отсюда и 0 времени.

Я не берусь огульно утверждать, в отличие от тебя, что ты жульничал. Ты мог просто не знать этого, прочитав слово Bitmap в коде, решить, что рисуется в памяти и затем копируется в dc формы. Поэтому из тех двух вариантов, что я сделал, соответствующим твоему является вариант Gradient_Direct.exe.

Вот и берем для сравнения твой вариант и мой Gradient_Direct.exe.
Результаты:
GDITesting.exe - 138 мс
Gradient_Direct.exe - 11 мс.

Отсюда имеем разницу в 12,5 раз.

Даже если сравнивать с тем вариантом, что рисует в память и затем в dc - 14 мс. то разница в 9,8 раз. Более чем убедительно.


P.S.
Когда выскакивает MsgBox, его верхние уголки скруглённые, и в том месте, где скругления, участок дорисовывающий MsgBox до прямоугольного окна, остается непрорисованным, в отличие от моего примера. Более того, если задвинуть твоё окно за экран, и запустить мою программу, нарисовать в ней рисунок, а затем нажать на твою кнопку, то MsgBox выскакивает над моим окном (оно стоит по центру экрана) и на моём рисунке этих серых треугольничков нет. Отчего бы это? Завтра будем разбираться. Будем караулить MsgBox, как только появится, постараюсь сразу же двинуть твоё окно в сторону и посмотрю, не смажется ли рисунок :)

А пока спокойной ночи.

Ответить

Номер ответа: 39
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #39 Добавлено: 16.04.05 05:09
Таки нет, доброе утро :)

Участия я не принимал из-за разницы во времени, и так до 4 утра тут сидел.

Ага, при рисовании на битмап и правда медленнее, но зато красивее... Выслал абсолютно тот же проект, но с битмапом.


ЗЫ: основную часть времени хавает именно градиент, поэтому всё-таки правильно рисовать градиенты одного типа :)

Ответить

Номер ответа: 40
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #40 Добавлено: 16.04.05 05:10
Да, метод подсчёта изменил - 10 вызовов, усреднённое.

Ответить

Номер ответа: 41
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #41 Добавлено: 16.04.05 11:47
Ты заставил рисовать меня в промежуточный dc в памяти и затем перерисовывать в dc окна. Якобы ты делаешь также.

Слушай, перечитай еще раз мой пост - внимательно и до конца.
И следующий за ним (начинается со слов "эээ, без самодеятельности ...";). Может, тогда понятнее станет?

Ответить

Номер ответа: 42
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #42 Добавлено: 16.04.05 13:44
Почему промолчал, когда я прислал тебе заведомо более медленный вариант, неправильно поняв тебя? Хотел дивидендов с этого?
Чего цепляешься к способу заливки? Где-то оговаривал его? Заливка одинакова тик в тик горизонтальная и диагональная. Есть сомнения - файл с диагональю лежит тут:http://webfile.ru/261502

В общем, я вижу результат:
использование старых и непрогрессивных технологий, которые применял GSerg и которые применял я, дают результат порядка 10-11 мс.
Новая прогрессивная технология .нет дает результат 138 мс.

Думаю, что трудно винить меня и GSerg'a в том, что мы сговорились и у нас одинаковые результаты.

Не вижу более причин находиться тут в ожидании новых попыток доказать недоказуемое :) Задач, которые может решать компьютер столько, что не хватит жизни протестировать их все. И у меня нет времени тестировать их, ожидая, когда ты сможешь показать мало-мальски достойный результат. Чтобы сделать это, учи программирование. С самых азов. Со столь презираемого тобой ассемблера. Может станешь когда-нибудь профессионалом. На деле, а не в своём воображении. Как например GSerg, который знает и может на порядок больше меня и на два порядка больше тебя.

Грозился пригласить профессора - пригласи. Пусть полюбуется на своего ученика.

Помнишь свою фразу: В руках у меня самый мощный, высокотехнологичный и прогрессивный инструмент. А у тебя всего лишь ассемблер.

Чтобы побить тебя с твоим инструментом, мне хватит даже ассемблера. Более чем достаточно.

Успехов.

Ответить

Номер ответа: 43
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #43 Добавлено: 16.04.05 15:32
Грозился пригласить профессора - пригласи. Пусть полюбуется на своего ученика.

Ученика? Я не его ученик.

Чтобы побить тебя с твоим инструментом, мне хватит даже ассемблера. Более чем достаточно.

Сегодня ты выиграл эту битву, но вчера проиграл всю войну.

Have a nice day.

Ответить

Номер ответа: 44
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #44
Добавлено: 16.04.05 23:15
Сегодня ты выиграл эту битву, но вчера проиграл всю войну.
А с этого места поподробнее.

Ответить

Номер ответа: 45
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #45
Добавлено: 17.04.05 18:35
Ну типа "Я ещё вернусь, ха! ха! ха!"
И подпись, "Злой.NET" :)

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам