PDA

Просмотр полной версии : [Вопрос] Вопрос про нагрузку



DmitriyVasilev
09.03.2019, 08:30
Здравствуйте, сильно ли нагружает ежесекундная смена названия сервера?
SetTimer("NameChange",1*1000,true);
forward NameChange();
public NameChange()
{
new fmt_str[10 + sizeof(ServerNames[])];
format(fmt_str,sizeof(fmt_str),"hostname %s",ServerNames[random(sizeof(ServerNames))]);
SendRconCommand(fmt_str);
return 1;
}
2. Такой таймер обновляется так же как и OnPlayerUpdate по времени??
SetTimer("UpdateFresh", 250,1);
если да, то может содержимое этого таймера перенести в onplayerupdate ( содержимого мало ) чтобы вызова foreach не было, просто где-то читал что использование цикла в таймере лаги создает со временем

DeimoS
09.03.2019, 09:34
1) Нет, не сильно.

2) OnPlayerUpdate может вызываться по 25-30 раз за секунду, в зависимости от активности игрока. Чем больше действий совершает игрок, тем больше данных нужно синхронизировать с сервером и тем чаще происходит вызов. При AFK OnPlayerUpdate вообще не вызывается, например.
Сам по себе цикл ни к каким лагам не приведёт. Лаги создаёт кривой код. Код в таймерах (тем более с таким маленьким временным промежутком) должен быть максимально оптимизирован на быстродействие. Тогда и задержек никаких не будет.

Оптимизацией лучше займись тогда, когда появятся проблемы с ней. Тогда можно будет отследить слабые места и переписать их. А пытаться заранее оптимизировать что-то - пустая трата времени.

UPD: перенёс оффтоп в курилку (http://pro-pawn.ru/showthread.php?388-Pro-Pawn-Ru-%D0%9A%D1%83%D1%80%D0%B8%D0%BB%D0%BA%D0%B0&p=93507&viewfull=1#post93507).