Зарегистрирован: Пт мар 25, 2005 9:55 Сообщения: 5801
Откуда: Пегас
да не парьтесь у меня вон развед ко мне прилетел а я его увидел тока когда бой произошол(((( причом красную кнопку запостил потом ее внимательно изучал нк не было там этого гребаного разведа а я его три дня ждал (((((((666
_________________ живу бедно: сыр с плесенью, вино старое, машина без крыши, телефон без кнопок.
Сегодня ловил человека на динаму. Посмотрел время прилёта, отправил прослойные армии в убежище и ушёл спать. Соответственно во время боя я соту не обновлял. Проснувшись наблюдаю такую картину:
11.07 07:09 - Армия Odissej3 вернулась из укрытия на соту RoadToHeaven (4.127.2).
11.07 07:26 - Армия Odissej1 вернулась из укрытия на соту RoadToHeaven (4.127.2).
11.07 07:39 - Армия Odissej4 вернулась из укрытия на соту RoadToHeaven (4.127.2).
11.07 08:09 - Армия Odissej5 вернулась из укрытия на соту RoadToHeaven (4.127.2).
Зарегистрирован: Пн сен 29, 2003 12:33 Сообщения: 698
О! Прикольно! А я уж подумал, что только я один какой-то дебил, которому действия разрабов кажутся смешными и вредными для игры и что меня за мои посты скоро забанят )) А оказывается я не один? ))))))))
Вы чего разорались? Вы в зеркало поорите дома или прошепчите свои просьбы обратясь лицом к небу. Такими способами результ можно получить имхо быстрее, чем высказываясь тут.
_________________ Не говорите мне, что я должен делать и я не скажу Вам, куда Вы должны идти
p.s.:а админы и не знают, что BBCode в подписях перестал работать...
программист реализующий это исправление не ставит заплатку а имено исправляет неверный алгоритм и работает у нас уже четвертый год
вместо того чтобы сказать спасибо, повелись на первый не знаю с какого перепугу написаный пост.
хочется работать для людей которые ценят наш труд.
Спасибо. После исправления алгоритма у меня непонятно с какого перепугу резко увеличилось количество 54321. И если до этого сообщение 30, 29 .... я видел всего 2 или 3 раза, то сегодня оно у меня раз 5 появилось.
Описание моих действий:
Встал сразу после дауна. В воздухе было около 100-150 армий. Раньше 20 минут хватало что бы все грабли приземлились и обновиться перед разведом, посмотреть - а если ли форс какой я лечу убивать.
Сейчас: 20 минут обновлений. Минуте на 7-8 - показали армии которые бились до 4,05. Потом (минуте на 15 примерно) куча 54321, 30...1 - показало 2 армии которые бились в 5,37. На 20 минуте добавило 15 армий, которые бились с 5,45 по 6,11. (Добавило, начиная с разведа который ко мне прилетал). На 25 минуте - нормально уже зашёл в соту. Вроде всё, бои все обсчитались.
Вражеского форса на соте благополучно не оказалось. Ну и фиг с ним. Всё равно не успевал за 20 минут нормально зайти на соту.
Могу предположить, что "зависание" обновлений происходит у защиты в случае, если атака не обновляется.
Тогда защите приходится делать по 2 обновления на каждую прилетающую к ней армию, чтобы этот бой обсчитался (если это спам) и можно было увидеть, что в красной кнопке после него.
Зарегистрирован: Пн мар 28, 2005 14:11 Сообщения: 3637
Откуда: GHOSTS
обычно разработчики с ситемным складом ума перед тем как выкладывать релиз, анализируют последствия исправлений. Это делается еще до того как выводить приложение на тест, ну найдите такого человека который будет в состоянии это делать. всем будет легче.
_________________ [color=grey]Форум - тоже поле боя. (С) ocimico[/color]
Технически решение-то простое:
1)рассчитывать бой БЕЗ рефреша, а по наступлении времени боя (event-based)
2)сократить рассчет боя с нескольких секунд до нескольких микросекунд
3)вынести составление лога и вписание его в базу (львиная доля времени рассчета) в отдельный поток (или оставьте под рефреш), естественно, изменения форса в базе апдейтить сразу надо.
Практически же, с кодом, состоящим из заплаток чуть более, чем полностью, на ПХП, заточенном под многопоточность и рефреши... я бы наверное не взялся. Хотя есть смысл посмотреть.
Я бы взялся вопрос в сроках и цене..
Технически решение не столь простое, необходимо на тестовых сферах определить лимитирующую по времени часть алгоритма расчетов, а уж потом думать как оптимизировать (например,вероятно тут коэффициенты урона стек-стек рассчитываются в скрипте, хотя их (~80*~80~=6400операций) можно считать 1 раз после изменения параметров и загружать массивом) не всегда даже дело в алгоритме, тут могут лимитировать постоянные коннекты к БД (скорее всего не локальной) для записи скрипта об окончании стадии рассчётов (сейчас стадийная схема)....
У меня был случай на моих базах - самый тяжелый скрипт, рассчет полной месячной отчетности с выявлением задвоенных заявок для весьма крупной компании занимал на серваке 15-20 минут... алгоритм оптимизирован с точки зрения функциональности (нужно было конечно на 2 скрипта разделить, но заказчик отказался от оптимизации - подумаешь 20 минут...) - оказалось дело в логировании ошибок апачем, отключил логирование полностью - скрипт занял 18-22 секунд.
Другой пример переход на второй апач, скрипты стали кушать времени в 1.5 раза больше, картинки грузились через Ж..., пришлось вернуться на первый...
Подводных камней много, нужно их выявлять и исправлять - вот только отчет для начальства о "камнях" очень сложно делать, с его (начальства) точки зрения, программист бездельничает вместо оптимизации, да и представить вечно трудящегося программиста я не в состоянии.. мозг тоже может уставать и быстрее чем мышцы
_________________ Стрелец - [SYN]-[CISYN] ==> Феникс-[LOST]
Терра Нова - [VA]
По мне так вот ЭТО самое правильное, а не мифическая экономия серверного времени при обработке событий пакетами.
"ЭТО" означает переделку вообще всей системы боя с НУЛЯ, и по хорошему - выделения одного очень мощного сервера для ежесекундной обработки боёв всей сферы и только их, без участия игроков, и с последующей синхронизацией... множественность потоков отпадает...
Понятно, что заплатки лепить проще на несколько порядков...
_________________ Стрелец - [SYN]-[CISYN] ==> Феникс-[LOST]
Терра Нова - [VA]
Зарегистрирован: Ср май 31, 2006 13:48 Сообщения: 517
Откуда: Киев
Цитата:
Технически решение-то простое:
1)рассчитывать бой БЕЗ рефреша, а по наступлении времени боя (event-based)
.....
Цитата:
"ЭТО" означает переделку вообще всей системы боя с НУЛЯ, и по хорошему - выделения одного очень мощного сервера для ежесекундной обработки боёв всей сферы и только их, без участия игроков, и с последующей синхронизацией... множественность потоков отпадает...
Вот те и раз... А почему я знаю, что в сфере это реализовано? Не каждую секунду, но каждые 15-20 минут бегает скрипт и проводит те бои, где никто не обновлялся. Только этот скрипт бегает, когда может. Когда не может, когда сервер перегружен - не бегает. Ибо игроки - главнее, их обновления выполняются в первую очередь! Альтернатива - ждать в рамочке, пока не расчитаются все бои сферы А именно практика и показывает: ждать надо будет долго
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 44 гостя
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения