forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   If .. EndIf vs Логические выражения (http://forum.boolean.name/showthread.php?t=14176)

mr.DIMAS 04.02.2011 16:00

If .. EndIf vs Логические выражения
 
Собственно сабж. Что будет выполняться быстрее? К примеру:

PHP код:

If Speed MaxSpeed And KeyDownKEY_W Then
     Speed 
Speed 0.1
ElseIf Speed > -MaxSpeed  And KeyDownKEY_S Then
     Speed 
Speed 0.1
EndIf 

PHP код:

Speed Speed 0.1 * ( Speed MaxSpeed ) * KeyDownKEY_W )- 0.1 * ( Speed > -MaxSpeed ) * KeyDownKEY_S 

Оба кода делают одно и тоже. Что предпочтительнее по скорости?

.Squid 04.02.2011 16:21

Ответ: If .. EndIf vs Логические выражения
 
Во-первых, premature optimization is the root of all evil (с) Donald Knuth.
Во-вторых, это экономия на спичках.
В-третьих, операции с числами с плавающей запятой затратнее.

mr.DIMAS 04.02.2011 16:27

Ответ: If .. EndIf vs Логические выражения
 
Вопрос был о скорости. Не об экономии. И не о "преждевременной оптимизации". Кароч быстрее или нет?

DStalk 04.02.2011 17:04

Ответ: If .. EndIf vs Логические выражения
 
Выполни их по миллиону раз и и посчитай время командой millisecs()

RBK 04.02.2011 17:14

Ответ: If .. EndIf vs Логические выражения
 
Логические операции выполняются быстрее умножения, вероятно первый пример будет быстрее.

IGR 05.02.2011 21:04

Ответ: If .. EndIf vs Логические выражения
 
думаю стоит сначало проверять нажатие кнопок а потом во вложеном условии проверять скорости !!

Gector 05.02.2011 21:07

Ответ: If .. EndIf vs Логические выражения
 
Я думаю в таких условиях достаточно просто не мудрить. Это не партиклы чтобы париться оптимизацией.

mr.DIMAS 05.02.2011 23:29

Ответ: If .. EndIf vs Логические выражения
 
Вот после таких слов мы жалуемся на то, что современные игры тормозят

Gector 05.02.2011 23:47

Ответ: If .. EndIf vs Логические выражения
 
А из-за подобных высказываний глючат. Здравый смысл где? Это одна строго определенная функция.

IgorOK 05.02.2011 23:56

Ответ: If .. EndIf vs Логические выражения
 
При современных мощностях компьютеров подобные вещи несущественны если они не вызываются по миллиону раз за кадр.

Я вообще так команды на скорость тестировал:

Код:

n=10000

;замеряем время самого цикла
time1=MilliSecs()
For i=1 To n
Next
time2=MilliSecs()

looptime=time2-time1

time1=MilliSecs()
For i=1 To n
;Тестируемая команда/программа
Next
time2=MilliSecs()

Print time2-time1-looptime


mr.DIMAS 06.02.2011 00:19

Ответ: If .. EndIf vs Логические выражения
 
Спасибо. Потестю на досуге

LLI.T.A.L.K.E.R. 06.02.2011 02:31

Ответ: If .. EndIf vs Логические выражения
 
В логическом смысле первый пример лучше.
Так как во втором - в любом случае необходимо вычислять по ВСЕМ параметрам.

Randomize 06.02.2011 23:38

Ответ: If .. EndIf vs Логические выражения
 
Копейки считаете, уважаемые.
Это же тупой блок программы и его ускорять нет смысла.
Как не крутись всё сожрёт филлрейт.


Часовой пояс GMT +4, время: 08:35.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot