XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NETRAT

offline
Опыт: 83,712
Активность:
афаир, движок спокойно хавает все три формата записи числа, в нем много заплаток где ноль ставится "по умолчанию"
Старый 08.10.2009, 11:40
ScorpioT1000
Работаем
online
Опыт: отключен
Q_w_e_r_t_y, любая из четырех основных математических операций с интом исполняется в 1 такт процессора. С флоатом даже далеко не в два..
Старый 08.10.2009, 14:42
dk

offline
Опыт: 60,293
Активность:
это ниразу не очевидно, можно анализировать тип выражения и сразу считать цифры в формате без точки как реалы (как в принципе делают многие компиляторы)
Но многие компиляторы так не делают... В пример, в универе на 1 курсе на паскале об этом говорили, что в выражениях с флоатом, в константах надо ставить точку. Ибо мега компиль паскаля выдает что-то подобное, с преобразованием в процессе вычислений. Так, что открытие не особо потрясает)
Старый 08.10.2009, 15:02
NETRAT

offline
Опыт: 83,712
Активность:
гм, вообще, транслятор определяет тип выражения либо по левой части, либо по типу первого аргумента и приводит все аргументы к этому типу, что касается jass - дырка может быть где угодно ...
Старый 08.10.2009, 15:17
adic3x

offline
Опыт: 108,439
Активность:
транслятор определяет тип выражения либо по левой части
мне это кажетсья логичным, хотя в нашем случае это как раз не так
jass это нечто, так что я не удивлен © NT
ADOLF добавил:
на 1 курсе на паскале об этом говорили
ваш паскалист - это вообще отдельная тема
Старый 08.10.2009, 17:37
YellowStar
poon
offline
Опыт: 15,144
Активность:
Тема бред. Современные процессоры даже не вызовут лаг при 1000 запусках этих функции. Да и милион их не смутит. Так что гонятся за псевдо скоростью незаметнои даже на 3 пеньке не вижу смысла.
п.с пишу - .0
Старый 09.10.2009, 13:29
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
narayan, процессор просто обрабатывая движок вара + ОС + кучу других приложений выполняет порядка 500 миллионов - 1 миллиарда операций в 1 сек. При большой нагрузке вара системами такими как у NCrashed это число может значительно увеличится. При 1.6ГГц максимум он может выдержать наплыв до 1.7 миллиардов операций в секунду. Вопрос: что будет, если все real в той же системе NCrashed зменить на целые и посмотреть, насколько уменьшится быстродействие изза постоянных преобразований?

Хм... Самому интересно стало.
Старый 09.10.2009, 14:09
adic3x

offline
Опыт: 108,439
Активность:
я поясню что подобное преобразование не страшно в нормальном коде, учитывая интерпритируемость жасса и его тормознутость это вполне может вызывать лаги например в системах движения
Старый 09.10.2009, 14:35
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
Я этои имел ввиду - систему FDL CarLib к примеру.
Старый 09.10.2009, 14:43
NCrashed

offline
Опыт: 13,553
Активность:
Меня кто-то звал =) ? Ну хоть так поминают мои системы, JamesBlack, не надо так к FDL относиться, мб в либе есть куча ненужных функций, жрет памяти больше других систем движения, но она оптимизирована и утечек не дает, и когда я закончу переводить ее на cJass, то ненужные блоки можно будет просто отключить (условная трансляция). Кстати FDL пашет и на нетбуке без лагов (80-100 объектов).
Согласен, что для вычисления более мене реалистичной физики приходится постоянно что-то считать, но для вара такие мелочи, как перемножение векторов, нахождения угла между ними - капля в море.
Кста, нужно по теме оптимизировать константы, погоды это не сделает, будет что-то вроде понта =)
Старый 09.10.2009, 16:20
adic3x

offline
Опыт: 108,439
Активность:
нужно по теме оптимизировать константы
... или сразу использовать дефайны с подставлением иммед значений
Старый 09.10.2009, 17:42
YellowStar
poon
offline
Опыт: 15,144
Активность:
Даже данная система не вызовет лагов. Скорее будет вызывать постоянные вызову функции чем переработка с интегера в реал. Как бы не хотелось но это отпадает само собой. Писать можно как тебе удобно. А задрачивать под единицы что сидят на 700мгерц никогда не стоит. Уж лучше пусть карта заставит обновить их кал. Либо пусть не играют вовсе:) (не в обиду тем кто сидит с этого железа)
Старый 09.10.2009, 18:01
ScorpioT1000
Работаем
online
Опыт: отключен
JamesBlack, ну самое простейшее умножение может вернуть реал, такчто это иногда только усложнит, не надо ничего менять.
ScorpioT1000 добавил:
ADOLF:
нужно по теме оптимизировать константы
... или сразу использовать дефайны с подставлением иммед значений
константы - не есть подстановка. Константа - это постоянное значение ! оно имеет тип. он немного в других областях используется
Старый 09.10.2009, 20:38
NCrashed

offline
Опыт: 13,553
Активность:
Идеологически это верно, но лучше подставить константы на этапе трансляции, хоть мизерный выигрыш в скорости мы получим, тем более на практике эти два метода ничем не отличаются
Старый 09.10.2009, 21:13
ScorpioT1000
Работаем
online
Опыт: отключен
ну да, но это надо делать прозрачно для пользователя(тоесть программиста)
Старый 09.10.2009, 21:14
NCrashed

offline
Опыт: 13,553
Активность:
обычно такой дефайн выносится наверх библиотеки и делается коммент, что это константы). + добавляется возможность подстановки формул для дамага заклинаний и прочего через параметрические макросы
NCrashed добавил:
А ведь дразните народ своим волшебный деассемблератором =)
Старый 09.10.2009, 21:31
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
ADOLF:
я поясню что подобное преобразование не страшно в нормальном коде, учитывая интерпритируемость жасса и его тормознутость это вполне может вызывать лаги например в системах движения
ну перевод то делается не средствами джазза ведь
так что впринципе разницы нет :)
бтв а просто . будет распознана как 0.0 ?
сам проверить не могу ибо ве ни одну карту не сейвит чё-то :(
Старый 11.10.2009, 17:16
ScorpioT1000
Работаем
online
Опыт: отключен
нет и не надо
Старый 11.10.2009, 17:51
adic3x

offline
Опыт: 108,439
Активность:
ну перевод то делается не средствами джазза ведь
так что впринципе разницы нет :)
это делается интерпритатором
т.е. это не быстро) это не кусок кода
А ведь дразните народ своим волшебный деассемблератором =)
автор просил его не расспространять
Старый 11.10.2009, 23:35
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
0E62D2B8 fx+0008 00 05 c3 0c 40000000 MOV_VAL_REG 1073741824 => #c3 {real (5)}
0E41D2B8 fx+0008 00 04 c3 0c 00000002 MOV_VAL_REG 2 => #c3 {integer (4)}
0E41D2C0 fx+0010 00 00 c3 17 00000000 #c3 = (float)#c3
не особо заметен интерпритатор тут
Старый 12.10.2009, 00:05
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:22.