Toadcop
offline
Опыт:
54,313Активность: |
ADOLF на факте ты phail =) и ничего не сделать... решил зделать что то крутое которое реально не кто не понял + смысл и практическое применение стоит очень под вопросом.
т.е. скока бы ты не расписывал это всё это много не изменит. надо правильно правильные задачи ставить =) |
28.07.2008, 18:56 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Toadcop, такое ощущение, что у тебя нет желания въезжать (и ничего не сделать ^^)...
Вот, сделал вариант попроще. С точки зрения ООП второй (предыдущий) вариант сделан правильно, но он не катит в jass-реализации по понятным причинам. |
28.07.2008, 20:28 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
ShadoW DaemoN конечно нету. ибо я написал на практике это очень относительно применимо. а смысла возитьса с практикой. ну и вообще много флавов здесь...
|
28.07.2008, 22:57 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Да я честно пока не понял эти ТригерЕвалуте. Разберусь. Счётчик поставил - ну не понимал я, как потоки работают, думал один цикл не прошёл, а триггер опять стучится. А вообще и сейчас толком не понимаю - буду благодарен за ссылку на толковую статью. рус/енг А раз круче всех, то и нам растолкуй, что за "тема Execute vx Evaluate". Цитата:
Мой? Разъясни причины. |
||
28.07.2008, 23:01 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Sebra, нет, я про свой вариант, который размещен в посте #11.
Насчет темы (http://wc3campaigns.net/showthread.php?t=101398): суть заключается в том, что функции, создающие новый поток, отнимают довольно много времени, и при частом выполнении разница с обычным вызовом в текущем потоке (через call) значительна. А нам такие тормоза не нужны. |
28.07.2008, 23:38 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
хорошо, как ты еще предлагаешь обрабатывать массовые события с мелким периодом? я не говорю что я сама лаконичность, но всетаки... так, теперь) Цитата:
http://xgm.guru/forum/showthread.php?t=13118 Цитата:
ООП будет работать в большинстве случаев медленее... я лично вообще не сторонник ооп не только в жассе но и вообще) достаточно просто открыть вар3мап.дж (ну т.е. то что оно по сути откомпилит) и посмотреть насколько там все не хорошо (иногда это не решает) - но в нашем случае когда важна полная оптимизация - нет теперь по самой задачену что... я понимаю что я поставил наверное не очень хорошо сформулированную задачу, но тем не менее хранение данных впринципе организовать лучше чем на паралельных массива (ака структ в вЖасс) низя а вот цикл - думаю да) хотя свдн предложил вариант, который в разы быстре с тригерЕвалуте, имхо мона еще немного лучше) |
|||
29.07.2008, 21:27 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Спасибо, но я имел в виду кхорошую статью про потоки в jass, как создаются, как обрабатываются ... Если нет, может напишет кто понимающий... Если нет таких... чтож. Цитата:
Конечтно, круче ассемблера ничего не будет. Развитый язык программирование ускоряет разработку. Например помогает избежать многих ошибок. Без ООП я бы так быстро ту систему не написал. Да и расширять её без ООП сильно проблематичнее. Цитата:
|
|||
30.07.2008, 23:41 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Deviator
Feel the purification...
offline
Опыт:
10,376Активность: |
- ADOLF так тебе нужно, чтобы твои юниты летали в массовом объёме (всмысле в мультиплеере баггов небыло из-за одинаковых спеллов). И чтобы когда выходили за определённый ранг, то ликвидировались, я так понял? В таком случае юзай 2 переменные отряды. Кастеры и снаряды...
Deviator добавил: - Данные можно хранить и изменять при каждом мованье юнита в кастом валуе юнита, если я правильно тебя понял... |
30.07.2008, 23:54 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
asm is our god! =) Цитата:
ну это уже все кастом т.е. сказать что оно намного быстрее/медленне нельзя, тот же асм с некоторыми макросредствами очень даже тру) Цитата:
концепция ооп - это когда ты пишешь большой медленный неелегантный код а потом убеждаешь себя что ты написал очень простой и удобный код) имхо чВ Цитата:
не факт т.е. это опять же зависит от самого кода, а не от стиля Цитата:
http://xgm.guru/forum/showpost.php?p=421960&postcount=22 - ??? //пишу свой вариант ADOLF добавил: //чиорт, щас віложить неуспеваю |
|||||
31.07.2008, 11:46 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
примерно так бы делал это я, хотя тут могут быть опечатки
» projectile mover Код:
Отредактировано ShadoW DaemoN, 06.08.2008 в 00:24. |
31.07.2008, 18:48 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Цитата:
Я знаю, что тебе до мозга костей нравится юзать хекс числа, но мог хотя бы написать -0х01. И отступы хотя бы в два пробела сделал. Теперь касательно кода. Мне не нравится повторяющийся код. Насчет лупов для каждого типа - хз, возможно это безопасней, но медленнее, чем 1 луп, ибо выражение в exitwhen просчитывается больше раз. Я кстати понял, что можно улучшить мой вариант, убрав оверрайдинг методов create и destroy, т.к. они вызываются через TriggerEvaluate, а по-хорошему надо через call или сразу инлайн. Не понимаю, почему Vex сделал так, что генпак не инлайнит их прямо в методы |
|
02.08.2008, 13:36 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
...
Код:
незнаю... я раньше думал о таком варианте но оказалось что его негде применять... точней у меня в ТсХ вместе с обработкай юнитов идёт еще обработка камеры. Цитата:
а теперь самое главное сделай тру мапу где ты будеш то юзать =) Отредактировано dk, 05.08.2008 в 03:44. |
|
02.08.2008, 14:08 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Сознательное применение запутывающих методов - отличительная особенность "крутых" программистов. а не хороших! Цитата:
А средства для автоматизации повторяющихся кусков (макросы. ООП) для него "не тру" ибо "можно и без них". И вообще, если в моём примере для каждого типа объекта делать просто похожие структуры, по периодическому таймеру и обработчику на каждый тип, полиморфизм исчезает и с ним все проблемы. Даже Move функцию можно вписать в обработчик таймера. -1 function call per object per cycle (ВАУ оптимизация). Цитата:
Vexorian и так сделал много + ещё работает. Цитата:
Да, и про потоки статьи я так и не нашёл, кроме кусочка в описании триггеров у Векса. Нету? |
||||
02.08.2008, 15:30 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Sebra потоки "сбрасывают" количество выполненых операций это грубо говоря. точней они дают новое пространсто для операций (т.к. в потоке есть предел на операции)
а вообщем смысл заключаетьса в вызова функуии "откуда угодно". т.е. есть форвардинг и т.п. |
02.08.2008, 16:53 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
теперь давайте считать... если делать как предложил свдн (т.е. бинарное дерево) то на кажды снаряд exitwhen+if*2. теперь, у меня на снаряд 1 exiwhen + пара их же на "пустые циклы" однако если начать грузить это все дальше то получиться просто несколько циклов вподрят без всяких ифов, имхо будет несколько быстрее + не так запутанно (т.е. под каждый цикл своя секция) если увеличивать количество типов снарядов - будет расти кол во ифов, опять же цикл имхо быстрее) ага, сама по себе конструкция цикла (loop exiwhen true endloop) БЫСТРЕЕ вызова ДуНотинг т.е. даже 10 пустых циклов нам не вредит цикл на жасс по сути два жампинга Код:
т.е. принципиально она не дб медленне ифа (но на практике так) Цитата:
я думал забить под них, но опять же по сути это ничего не меняет Цитата:
не можно а нужно... (ну макросы да) а вот ооп... у нас тут речь идет как раз про "узкий" участок кода, где важно оптимизировать все до крнца... Цитата:
что ты имеешь ввиду?! Цитата:
с этим как то сложнее... ;) Цитата:
дык чего же не сделал?) ну вобщем я думаю задача решена) |
||||||
03.08.2008, 14:33 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Насколько это реально важно, может показать лишь карта, но... Цитата:
Многим известно, сколько мусора в доте, но работает. Цитата:
Ну во 1х я не знал, как работает вызов "наследованной" функции; во 2х я считал, что Vex выбрал оптимальный вариант, а так код читается и пишется великолепно; в 3х последний предложенный мной вариант пришёл в голову только после обсуждения и критики; Да и вообще там прямо напрашиваются макросы а я с ними не очень. А в конце концов... изобразить? Или ты и так понял? И ещё: кто-нибудь желает/может сделать карту-пример с измерением сравнительного быстродействия предложенных вариантов? |
|||
03.08.2008, 21:13 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
в теме на компах писалось что соотношения вызова функции через калл и тригерЕвалуате где то 1:15 по времени Цитата:
а некоторые вообще языком умываются (с) сабж, в доте нету такого обьема) Sebra, нет, ну я все понимаю) но в любом случае кодер на низком уровне может сделать алгоритм лушче чем компилятор Цитата:
сделаю на днях |
|||
04.08.2008, 13:38 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Цитата:
К тому же компилятор работает быстрее и часто надёжнее кодера. Спорить тут не о чем, есть разные задачи - есть разные методы решения. Ещё один вопрос: знаешь про C-- ? Цитата:
|
|||
04.08.2008, 18:18 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
? именно "--" хз Цитата:
смотря какой кодер/компилятор ;) ну впринципе да, но это все относительно, сказать "делай так а не так" согласен нельзя Цитата:
+1 Цитата:
смысл? я просто сравню методы реализации циклов и все, потому что все остальное имхо и так ясно) |
||||
04.08.2008, 19:25 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
» test library Код:
сабж, т.к. СтомпВач у мну упорно непашет тестил методом абуза сразу просмотрите код, мб там есть ашипки (кста там в третем варианте полюбому ехитВен дб в начале цикла но впринципе картины это не меняет) там еск если вы пишет один раз без + вы можете проверить правильно ли работает таймер без + 8 обьектов, с ним - 128 луп как я и думал самый быстрый что бы заабузить перезапускайте мапу и пишите какой либо один метод несколько раз ("/bin" "/bin" "/bin" как пример) Отредактировано ShadoW DaemoN, 06.08.2008 в 00:24. |
05.08.2008, 12:36 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|