Таймеры -
AlexeyTrekkkk - 19.07.2014
Добрый вечер. Хотелось бы спросить про таймеры, а точнее глобальный таймер.
Если постоянно создавать отдельный таймер это как то повлияет на скорость работы мода? или же лучше создать один глобальный таймер на 100 мс?
Re: Таймеры -
DEMON91052 - 19.07.2014
А в этом таймере что вы хотите вставлять?
Если цикл игроков, и тогда ничего нормального не выйдет
Re: Таймеры -
AlexeyTrekkkk - 19.07.2014
Циклы в него не планирую вовсе.
Re: Таймеры -
AlexeyTrekkkk - 19.07.2014
Хотя, не таймеры ведь делают нагрузку на мод, а код который в них содержится, т.е получается без разницы сколько таймеров? даже если поместить весь код в один таймер то нагрузки меньше не станет?
Re: Таймеры -
k3dr - 19.07.2014
да, верно
Re: Таймеры -
Makar93 - 20.07.2014
Quote:
Originally Posted by AlexeyTrekkkk
даже если поместить весь код в один таймер то нагрузки меньше не станет?
|
Можно будет на другом лопухнуться, если время работы кода в таймере будет больше чем время повтора этого же таймера, то код будет выполняться не полностью.
Re: Таймеры -
Jon_De - 20.07.2014
Quote:
Originally Posted by Makar93
Можно будет на другом лопухнуться, если время работы кода в таймере будет больше чем время повтора этого же таймера, то код будет выполняться не полностью.
|
Скорее сервер повиснет вообще
Но код выполняющийся постоянно, который выполняется за 100 мсек, это уже ненормально
Re: Таймеры -
Mutha_X - 20.07.2014
Quote:
Originally Posted by Jon_De
Скорее сервер повиснет вообще
Но код выполняющийся постоянно, который выполняется за 100 мсек, это уже ненормально
|
У меня был код, который выполнялся 10 минут - и ничего - всё нормально.
Re: Таймеры -
Stepashka - 20.07.2014
Quote:
Originally Posted by Mutha_X
У меня был код, который выполнялся 10 минут - и ничего - всё нормально.
|
А у меня был запрос в MySQL который выполнялся пол часа. У кого ещё какая длина?!
PS сарказм если что, давайте писать по делу, то что у вас был долги код это ваша проблема и она не поможет человеку ни чем.
Re: Таймеры -
AlexeyTrekkkk - 20.07.2014
Ну я думал так, что если взять обычный таймер и паблик к примеру SetTimer("timer", 100, flase);
т.е паблик timer вызывается каждые 100 мс. Т.е мы сможем с помощью паблика имитировать таймер на время кратное 100 мс. К примеру 10 секунд = 10 000 мс. Значит надо повторить паблик 10 000 / 100 раз. Для этого я создаю глобальную переменную new timer10s;
В итоге должно получится как то так.
public timer()
{
new timer10s = 0;
if (++timer10s >= (10000 / 100))
{
timer10s = 0;
/*
Код
*/
}}
Так вот сам вопрос, по нагрузке будет ли отличаться стандартный метод испльзования таймеров т.е к каждой "функции" отдельный таймер или же лучше метод указаный выше?
Re: Таймеры -
Jon_De - 20.07.2014
Quote:
Originally Posted by AlexeyTrekkkk
Ну я думал так, что если взять обычный таймер и паблик к примеру SetTimer("timer", 100, flase);
т.е паблик timer вызывается каждые 100 мс. Т.е мы сможем с помощью паблика имитировать таймер на время кратное 100 мс. К примеру 10 секунд = 10 000 мс. Значит надо повторить паблик 10 000 / 100 раз. Для этого я создаю глобальную переменную new timer10s;
В итоге должно получится как то так.
public timer()
{
new timer10s = 0;
if (++timer10s >= (10000 / 100))
{
timer10s = 0;
/*
Код
*/
}}
Так вот сам вопрос, по нагрузке будет ли отличаться стандартный метод испльзования таймеров т.е к каждой "функции" отдельный таймер или же лучше метод указаный выше?
|
О какой нагрузке вообще речь может идти? Или вы каждый тик замеряете? Даже увеличение stream_rate на 10 мсек принесет больше пользы (если это так назвать можно), а разницы заметно не будет в игре.
Re: Таймеры -
AlexeyTrekkkk - 20.07.2014
Хорошо, понял, спасибо за ответ, это я и хотел услышать.
Re: Таймеры -
iNoob - 20.07.2014
Quote:
Originally Posted by AlexeyTrekkkk
Добрый вечер. Хотелось бы спросить про таймеры, а точнее глобальный таймер.
Если постоянно создавать отдельный таймер это как то повлияет на скорость работы мода? или же лучше создать один глобальный таймер на 100 мс?
|
Не советую делать на 100 мс общий таймер, таймер может не успеть выполниться в какой-то момент и CPU начнет перегружаться, на сервере лаги будут ужасные. 100 мс можно делать в единичных таймерах, например -
PHP код:
SetTimerEx("KickFix", 100, false, "i", playerid);
forward KickFix(playerid);
public KickFix(playerid)
{
Kick(playerid);
return true;
}
Re: Таймеры -
Mexanizm93 - 21.07.2014
Quote:
Originally Posted by iNoob
Не советую делать на 100 мс общий таймер, таймер может не успеть выполниться в какой-то момент и CPU начнет перегружаться, на сервере лаги будут ужасные. 100 мс можно делать в единичных таймерах, например -
PHP код:
SetTimerEx("KickFix", 100, false, "i", playerid);
forward KickFix(playerid);
public KickFix(playerid)
{
Kick(playerid);
return true;
}
|
Стоит повторяющийся глобальный таймер для просчётов итд. Не разу за 10 месяцев работы сервера не замечал подобного.