Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

Сервер подвисает при считывании файла со списком карт
http://aghl.ru/forum/viewtopic.php?f=10&t=2849
Страница 1 из 1

Автор:  pow [ 18 дек 2017, 09:50 ]
Заголовок сообщения:  Сервер подвисает при считывании файла со списком карт

доброго времени суток, недавно переехал на линукс - заметил такую проблему,
я использую плагин менеджер карт на бхоп сервере (Deagles' Map Manager) и плагин заставляет сервер повисать при считывании файла списка карт (allmaps.txt или mapcycle.ini или любой другой).
сервер висит примерно минуту и за это время всех клиентов успевает кикнуть.
в общем это происходит потому что в маплисте примерно 2700 карт.

но у меня два вопроса:
почему сервер не повисал на винде с таким же маплистом ?
и можно ли это както поправить, не знаю, настроить чтото в самом линуксе, или сделать в плагине считывание порциями в течении определенного времени?
исходник на всякий случай прикрепляю, мало ли добрые люди помогут подправить.
https://hastebin.com/ureyofapol.cs

Автор:  Lev [ 18 дек 2017, 17:13 ]
Заголовок сообщения:  Re: Сервер подвисает при считывании файла со списком карт

Там слишком дофига всего, чтобы сказать в чем конкретно проблема.
Надо дебажить. Втыкать server_print вокруг чтения карт и смотреть где затык.
Причем, я не понял, а где они вообще читаются?
Код:
//set_task(2.0, "get_listing");   //loads mapcycle / allmaps.txt
Тут закомментировано.

Автор:  pow [ 18 дек 2017, 20:31 ]
Заголовок сообщения:  Re: Сервер подвисает при считывании файла со списком карт

есть подозрения что они читаются в блоке get_listing() (1960 строка) и load_maps() (2183 строка)
но это не точно
Цитата:
Надо дебажить. Втыкать server_print вокруг чтения карт и смотреть где затык.
можешь по подробнее пожалуйста, как это происходить должно ?

Автор:  Lev [ 18 дек 2017, 22:44 ]
Заголовок сообщения:  Re: Сервер подвисает при считывании файла со списком карт

Код:
new start = get_systime();
server_print("-----Start: %i", get_systime() - start);
... тут код для профилирования
server_print("-----End: %i", get_systime() - start);
В секундах выведет сколько заняло. Более мелкие интервалы в амхх я фз как померять.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/