DioD
offline
Опыт:
45,134Активность: |
Логические конструкции в примерах
Логика это мышление вопреки общему мнению только правильная логика может быть оптимизацией, наличие или отсутствие утечек с оптимизацией не имеет ничего общего по определению.
Лучше всего оптимизации подвержены сложные механизмы с некоторым количеством действий и условий, но одной целью. 1) Немного теории – Устройство условного оператора и его виды: A = Прямой – не использующий цикл, последовательно проверяющий некоторую величину на соответствие каким либо условиям, в фиксированных рамках, например Проверка на вхождение числа в диапозон от 10 до 15 Код:
Как вы можете здесь условный оператор представляет из себя ветвь, но этого может и не быть Вот этот пример выявляет строгое соответствие числа 10 или 15, как видите это строго линейный оператор Код:
Б = С использованием цикла, при помощи которого проверка идёт до тех пор пока условие не выполнено, хотя бы одно из условий, как пример: Код:
Вот например при помощи такого оператора можно выяснить является ли число 10 или 20 если нет то цикл прервётся на втором запуске Длина и количество условий - неограниченны. Как пример возможностей оптимизации я предлагаю вам вот такой код: вот этот модуль проверяет, находиться ли юнит игрока X в радиусе 600 от некоторой точки и выполняет некоторый набор действий уже для игрока, а не юнита, в таком положении возникла масса сложностей, от фильтра юнитов, до фильтра по группе игроков Код:
Как вы можете видеть некоторое количество ненужных сложностей на лицо, ну будем исправлять. Для получения того, что необходимо самым правильным методом требуется составить план, что бы, не тупить. Итак, план вы должны составить максимально понятным и чистым. 1)Собираем всех юнитов 2)Для владельцев выполняем действия как бы то просто не звучало можно изменить это описание, вот зачем собирать всех юнитов если действия мы будем выполнять только для владельцев? 1)Собираем юнитов для каждого игрока в отдельности 2)Выполняем действия Как видите количество действий изменилось Единственное что нам понадобиться по мимо локальных переменных это одна глобалка для сверки номера игрока Код:
Отредактировано DioD, 04.11.2006 в 14:03. |
03.11.2006, 21:00 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
хочеш сказать что если я нормально построю код, но удалять обьекты не буду, то это будет грамотная оптимизация? |
|
03.11.2006, 21:02 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
увы если ты код построишь неправильнотолку от удалениябудет нуль |
03.11.2006, 21:22 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
DioD но и на оборот тоже нуль, такчто логический вывод - утечки всеже причем
|
03.11.2006, 21:33 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Диод, а разве это
Код:
|
03.11.2006, 21:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
ты не понял фишку щас всё будет |
03.11.2006, 21:42 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
хм... ты будеш описывать все логические упрощения всех комбинаций кодов? |
03.11.2006, 21:45 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Угу, просто такие вещи меня обычно напрягают =\ итератор против многократного бинарного поиска |
03.11.2006, 21:46 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
я выбрал этот код так как писал его изначально для этой цели, сделать неоптимизированымапотом довести до ума |
03.11.2006, 21:46 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
И расскажи что она собственно делает, эта система |
03.11.2006, 21:50 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
ты вроде пишеш тоже что писал я.. только немного беспольезнее... вроде никого не будут интересовать твои упрощения кодов, если никому они непонадобятся... нужно говорить "как?" "почему?" и "зачем?" что я и говорил, а переделывать коды.... имхо, это разве что по заказу:)
ну а вообщем - продолжай Отредактировано Jon, 03.11.2006 в 21:56. |
03.11.2006, 21:51 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
смысл в том что у нас есть АОС, там идут крипы и остальной хлам, так вот если кто-то умирает, и рядом есть герой игрока, этот игрок получит часть награды, проблем здесь масса, от фильтров что не пускают параметры до пробега по группам, что как вы уже виделилечиться достаточно оригинальным методом, пишутолько потому, что никто ранее эти проблемы не освещал, многие джазеры высого уровня страдают от невозможности мыслить глобально
план
на этом коде я расскажу очень многое, то что он делает неважно, важно только как он это делает |
03.11.2006, 21:56 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|