Одинаковы ли по скорости PaintPicture и BitBlt?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Одинаковы ли по скорости PaintPicture и BitBlt?

Сообщение |kerish| » 01.11.2004 (Пн) 17:44

Одинаковы ли по скорости PaintPicture и BitBlt?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.11.2004 (Пн) 18:10

BitBlt быстрее.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 01.11.2004 (Пн) 18:18

А вот многие говорят, что быстрее всего на 1.5 - 2%.
Брехня?

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 01.11.2004 (Пн) 18:20

Да и еще вопрос: может VB-шная комманда PaintPicture и вызывает BitBlt.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.11.2004 (Пн) 18:21

PaintPicture вызывает BitBlt. Но не только. Она может также вызывать StretchBlt, DrawIcon и т.п, в зависимости от разных условий. Т.е. сравнение не всегда уместно.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.11.2004 (Пн) 18:25

Проверьте сами. BitBlt быстрее не на 1,5-2%, а намного больше...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 01.11.2004 (Пн) 19:01

PaintPicture, насколько я знаю, всегда вызывает StretchBlt, а он гораздо медленнее BitBlt. :roll:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 01.11.2004 (Пн) 19:30

Если IPicture содержит hIcon то PaintPicture хочеш-не хочешь придется вызывать DrawIcon. Думаю, PaintPicture выбирает наиболее подходящую API. Кроме того, если IPicture содержит hBitmap то вызывается еще и CreateDC, SelectObject и т.п. Короче, как я и говорил это РАЗНЫЕ функции.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

pitbull
Постоялец
Постоялец
 
Сообщения: 314
Зарегистрирован: 25.06.2004 (Пт) 15:37
Откуда: Кемерово

Сообщение pitbull » 03.11.2004 (Ср) 20:38

2Amed, 2A.Z.Z. Абсолютно согласен.
PaintPicture, как и любая другая оболочка API (Line, PSet и т.д.) функции тормозна по природе своей. И дело тут не в том что она вызывает, а в том, что она при каждом(!) вызове проверяет параметры на допустимость.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.11.2004 (Ср) 21:07

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

pitbull
Постоялец
Постоялец
 
Сообщения: 314
Зарегистрирован: 25.06.2004 (Пт) 15:37
Откуда: Кемерово

Сообщение pitbull » 04.11.2004 (Чт) 20:16

да? Почему же тогда API быстрее работают?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.11.2004 (Чт) 20:37

Потому что преимущество в скорости достаточно велико, чтобы покрыть даже колоссальные накладные расходы :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.11.2004 (Чт) 20:38

Потому что тормозят не они, а из вызов из VB. Проверка параметров, сказали же уже...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 3

    TopList  
cron