Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

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

 

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

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

Ответить

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

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



Вопросов: 117
Ответов: 1538
 Профиль | | #16 Добавлено: 15.04.05 19:10
Мы же сравниваем работу однотипных участков

Насколько я понимаю сравнивается не однотипные участки, (см.заголовок темы, созданный тобой же) мы сравниваем GDI и GDI+.
Если GDI+ не позволяет разом рисовать, то незачем возмущаться :) Смирись с теми возможностями, которые ты выбрал. А то начинается: у меня комп тормозит и т.д. Несерьёзно это.

А 280 - это жутко много. :))).

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #17 Добавлено: 15.04.05 19:21
время выполнения снизилось вдвое. 10 мс.

Странно. Скинь мне на мыло программу (exe)

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #18 Добавлено: 15.04.05 19:22
Если GDI+ не позволяет разом рисовать, то незачем возмущаться :)

Не надо ляля. Позволяет.

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #19 Добавлено: 15.04.05 19:23
А то начинается: у меня комп тормозит и т.д. Несерьёзно это.

Еще раз перечитай - у человека на более слабой машине .NET-код сработал быстрее, чем на моей более мощной. Тормозит МОЙ комп.

Ответить

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



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


 Профиль | | #20 Добавлено: 15.04.05 19:31
Ушло...

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #21 Добавлено: 15.04.05 19:44
Artyom, это всё очень несерьёзно и очень смешно :)
У меня комп не тормозит, кидай свою программу, ко мне, или повесь её на webfiles.ru
Посмотрю, сколько она работает на нетормозящем компе

А про ляля - это к чему? детский сад, что-ли?
Если позволяет - сделай так, как получается быстрее, в чем дело? Кто мешает?

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #22 Добавлено: 15.04.05 20:09
Вот тебе мой результат для сравнения:

Залить градиентом 700х700 и нарисовать эту 40-угольную кучерявую голову негра - 10,4 мс. Машина примерно такая же как у тебя: Athlon 2200+, памяти даже меньше чем у тебя: всего 128 Мб.

Получается примерно раз в 30 быстрее, чем .Net
Есть ещё вопросы?

По-прежнему утверждаешь, что .NET - самой быстрый и мощный инструмент? Или уже нет?

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #23 Добавлено: 15.04.05 20:30
Залить градиентом 700х700 и нарисовать эту 40-угольную кучерявую голову негра - 10,4 мс. Машина примерно такая же как у тебя: Athlon 2200+, памяти даже меньше чем у тебя: всего 128 Мб.

Получается примерно раз в 30 быстрее, чем .Net
Есть ещё вопросы?

Потише, потише.
Я знаю, что ты сейчас начнешь ухмыляться и тыкать в мою сторону пальцем, но у меня реально тормозит машина.
Я не знаю, с чем это связано - с тем, что это серверная ОС или с тем, что я ее неправильно настроил, но факт - она тормозит.

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

Так вот, для установки более честных условий я сделал, чтоб мой еод работал точно так же - в результате он выполнялся порядка 18 секунд.
Я не знаю, с чем это связано, например, на другой машине с Win XP Pro SP2 это работает 102 мс.

Дадно, мою ормозную машину коментировать не надо.

Вобщем, уточняю сразу - рисуем сразу на поверхности PictureBox, оба примера (VB .NET и VB6 работают именно так). Если ты рисуешь именно на поверхности PictureBox, то оба примера можешь забрать прямо у меня на сайте.

Код GSerg требует, очевидно, msvbvm60.dll, мой код - .NET FW 2.0 (именно 2.0)

http://artyom.soobcha.org/gdi.rar

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #24 Добавлено: 15.04.05 20:31
По-прежнему утверждаешь, что .NET - самой быстрый и мощный инструмент? Или уже нет?

Ты мои слова не перекручивай - я не говорил, что он "самый быстрый".

PS Свой exe ты мне тоже скинь.

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #25 Добавлено: 15.04.05 21:02
На пикчербоксах не рисуют. Это к сведению.
Рисуют на dc - device context.
Ты рисуешь на dc пикчербокса, я рисую на dc окна.
Никакой разницы не вижу. Оба dc обладают идентичными свойствами.

и твоих слов никто не перекручивает, просто у тебя память коротковата.

А framework 2.0 где? Есть ссылка? Чтобы без посторонних файлов?

GSerg, я твой код немного подрихтовал:
GetTickCount при малых временах ведет себя не совсем корректно: может округлять. Поэтому сделал цикл из 10 вызовов Paint и поделил на 10.
Получилось у меня 11 мс на один вызов.

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #26 Добавлено: 15.04.05 21:18
Кстати, посмотрел пример GSerg'a - он тоже рисует не на dc пикчербокса, а на dc окна.

Сейчас сделаю второй пример - через промежуточный битмап. Посмотрим.

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #27 Добавлено: 15.04.05 21:30
На пикчербоксах не рисуют. Это к сведению.
Рисуют на dc - device context.

Хватит придираться - я уже не помню, когда последний раз читал документацию по GDI, поэтому сейчас и не вспомнил этот термин.

.NET Framework 2.0 (24 мб)
http://download.microsoft.com/download/2/d/9/2d96a8eb-a612-46ad-b4ed-6497a8e1f245/dotnetfx.exe


Сейчас сделаю второй пример - через промежуточный битмап. Посмотрим.

Ээээ Без самодеятельности! Все примеры тестируются таким образом, что рисуют на dc окна.

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #28
Добавлено: 15.04.05 21:57
Вобщем, я сделал такой вывод:
Наши многоуважаемые низкоуровневые программисты наконец смирились, что GDI+ никак не медленне GDI, а может даже и быстрее и не хотфт опозориться
В общем я сделал такой вывод: Артем не разбирается в сути того, что он использует, но считает, что оно лучше, чем что-либо. GDI - это основа графики в Windows, то, с чего она начиналась, отлаженный (стыренный) код, ведущий свою родословную с 70-х годов, когда только появлялись первые графические устройства. А GDI+ это объектная обертка вокруг него (а в FW, наверняка, еще и обильно приправленная вставками, обеспечивающими managed code). Но Артем почему-то наивно верит, что часть может работать медленнее целого :)
Кроме того, о квалификации программиста, комп которого работает в 100 раз медленнее при прочих равных, можно составлять анекдоты :)
Ээээ Без самодеятельности! Все примеры тестируются таким образом, что рисуют на dc окна.
Особой разницы не вижу, где рисовать - на DC окна или битмапе, второе даже должно быть дольше, за счет копирования.

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #29 Добавлено: 15.04.05 22:11
Не нервничай! Рисую в битмапе в памяти, затем перегружаю из памяти в dc окна. Уже готово. Результат 14 мс.

Сейчас на мыло отправлю оба.
Один называется Gradient_Bitmap - рисует сначала в память, затем рисунок из памяти перекладывает на dc окна.
Второй называется Gradient_Direct - рисует сразу на dc окна.

Кто из них кто, можно и без названия определить.
Тот который через память, моргать не будет (BitBlt скрадывает), который напрямую - будет помаргивать в процессе рисования.

Оба файла рисуют в цикле десять раз, затем время делится на 10. Т.к. при малых временах (если один раз рисовать) GettickCount практически всегда показывает 15-16 мс. Чтобы уйти от флуктуаций и делается цикл.

Ответить

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



Разработчик

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

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

Ответить

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

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



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