Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 04.02.2011, 16:00   #1
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Сообщение If .. EndIf vs Логические выражения

Собственно сабж. Что будет выполняться быстрее? К примеру:

If Speed MaxSpeed And KeyDownKEY_W Then
     Speed 
Speed 0.1
ElseIf Speed > -MaxSpeed  And KeyDownKEY_S Then
     Speed 
Speed 0.1
EndIf 
Speed Speed 0.1 * ( Speed MaxSpeed ) * KeyDownKEY_W )- 0.1 * ( Speed > -MaxSpeed ) * KeyDownKEY_S 
Оба кода делают одно и тоже. Что предпочтительнее по скорости?
__________________

(Offline)
 
Ответить с цитированием
Старый 04.02.2011, 16:21   #2
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: If .. EndIf vs Логические выражения

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

(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
ABTOMAT (04.02.2011), maxturbo (06.02.2011), Mr_F_ (04.02.2011)
Старый 04.02.2011, 16:27   #3
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: If .. EndIf vs Логические выражения

Вопрос был о скорости. Не об экономии. И не о "преждевременной оптимизации". Кароч быстрее или нет?
__________________

(Offline)
 
Ответить с цитированием
Старый 04.02.2011, 17:04   #4
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: If .. EndIf vs Логические выражения

Выполни их по миллиону раз и и посчитай время командой millisecs()
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Старый 04.02.2011, 17:14   #5
RBK
Знающий
 
Аватар для RBK
 
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений
(для 166 пользователей)
Ответ: If .. EndIf vs Логические выражения

Логические операции выполняются быстрее умножения, вероятно первый пример будет быстрее.
(Offline)
 
Ответить с цитированием
Старый 05.02.2011, 21:04   #6
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: If .. EndIf vs Логические выражения

думаю стоит сначало проверять нажатие кнопок а потом во вложеном условии проверять скорости !!
(Offline)
 
Ответить с цитированием
Старый 05.02.2011, 21:07   #7
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: If .. EndIf vs Логические выражения

Я думаю в таких условиях достаточно просто не мудрить. Это не партиклы чтобы париться оптимизацией.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 05.02.2011, 23:29   #8
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: If .. EndIf vs Логические выражения

Вот после таких слов мы жалуемся на то, что современные игры тормозят
__________________

(Offline)
 
Ответить с цитированием
Старый 05.02.2011, 23:47   #9
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: If .. EndIf vs Логические выражения

А из-за подобных высказываний глючат. Здравый смысл где? Это одна строго определенная функция.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 05.02.2011, 23:56   #10
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: 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
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (06.02.2011)
Старый 06.02.2011, 00:19   #11
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: If .. EndIf vs Логические выражения

Спасибо. Потестю на досуге
__________________

(Offline)
 
Ответить с цитированием
Старый 06.02.2011, 02:31   #12
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: If .. EndIf vs Логические выражения

В логическом смысле первый пример лучше.
Так как во втором - в любом случае необходимо вычислять по ВСЕМ параметрам.
(Offline)
 
Ответить с цитированием
Старый 06.02.2011, 23:38   #13
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: If .. EndIf vs Логические выражения

Копейки считаете, уважаемые.
Это же тупой блок программы и его ускорять нет смысла.
Как не крутись всё сожрёт филлрейт.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com