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 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SwuJe
aka Sakh_badboy
offline
Опыт:
15,248Активность: |
DioD, а теперь поподробней какой она вызывает эфект |
09.01.2010, 13:19 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
эффект деления на ноль с последующим уничтожением вселенно.
еще вопросы? |
09.01.2010, 13:25 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Лекс
offline
Опыт:
3,280Активность: |
DioD, это гениально Холмс =) |
09.01.2010, 13:51 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
тока в рабочей карте из за такого аллокатора будет больше проблем чем пользы. самое важное то что аллокатор вызыватся редко тем самым его скорость выполнения не критична. Важна надёжность.
|
09.01.2010, 14:55 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
не думаю что из за такого аллокатора возник большие проблемы чем при использовании стандартного, во втором случае вы просто напросто получите сообщение об ошибке, которое само по себе геймплей не воскресит.
|
09.01.2010, 17:42 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ты гений ! |
09.01.2010, 18:16 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
кстати я так и не нашел как называется этот алгоритм, ясен пень что его придумали давным давно.
|
09.01.2010, 18:22 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Toadcop:
Заставит задуматься но можно и проигнорировать, не вставлять же самое нужное место? |
09.01.2010, 19:10 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|