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

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

Ответ
 
DioD

offline
Опыт: 45,134
Активность:
Custom Struct Allocator macro
((код jass
! textmacro CSA takes NAME
globals
integer array CSA_$NAME$
endglobals
function PICK_$NAME$ takes nothing returns integer
set CSA_$NAME$[0] = CSA_$NAME$[0] + 1
return CSA_$NAME$[0] - CSA_$NAME$[CSA_$NAME$[0]]
endfunction
function DROP_$NAME$ takes integer I returns nothing
set CSA_$NAME$[CSA_$NAME$[0]] = CSA_$NAME$[0] - I
set CSA_$NAME$[0] = CSA_$NAME$[0] - 1
endfunction
! endtextmacro
))
Этот хитрый код на 50% (оплимит) и 20% (вочдог) быстрее встроенного в vJass аллокатора, в принципе можно рекомендовать всем любителям оптимизации.
держит 10715 вызова (против 7143 стандартного) то есть можно выделить целый массив внутри одного потока.
ну еще он гораздо гораздо короче и намного сложнее в восприятии, такая функция в принципе может заставить задуматься если вашу карту станут "ломать".
Работает хитрым образом, дальнейшая оптимизация алгоритма не возможна в принципе.

Отредактировано Nekit1234007, 13.02.2011 в 00:52.
Старый 09.01.2010, 13:05
SwuJe
aka Sakh_badboy
offline
Опыт: 15,238
Активность:
DioD, а теперь поподробней какой она вызывает эфект
Старый 09.01.2010, 13:19
DioD

offline
Опыт: 45,134
Активность:
эффект деления на ноль с последующим уничтожением вселенно.

еще вопросы?
Старый 09.01.2010, 13:25
Лекс

offline
Опыт: 3,280
Активность:
DioD, это гениально Холмс =)
Старый 09.01.2010, 13:51
Toadcop

offline
Опыт: 54,313
Активность:
тока в рабочей карте из за такого аллокатора будет больше проблем чем пользы. самое важное то что аллокатор вызыватся редко тем самым его скорость выполнения не критична. Важна надёжность.
Старый 09.01.2010, 14:55
DioD

offline
Опыт: 45,134
Активность:
не думаю что из за такого аллокатора возник большие проблемы чем при использовании стандартного, во втором случае вы просто напросто получите сообщение об ошибке, которое само по себе геймплей не воскресит.
Старый 09.01.2010, 17:42
ScorpioT1000
Работаем
online
Опыт: отключен
ты гений !
Старый 09.01.2010, 18:16
DioD

offline
Опыт: 45,134
Активность:
кстати я так и не нашел как называется этот алгоритм, ясен пень что его придумали давным давно.
Старый 09.01.2010, 18:22
9thNerZul
forum/warcraft3
offline
Опыт: 4,869
Активность:
Toadcop:
тока в рабочей карте из за такого аллокатора будет больше проблем чем пользы. самое важное то что аллокатор вызыватся редко тем самым его скорость выполнения не критична. Важна надёжность.
Заставит задуматься но можно и проигнорировать, не вставлять же самое нужное место?
Старый 09.01.2010, 19:10
Ответ

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

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

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

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



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