Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Оптимизация
Entity Дата: Воскресенье, 12.03.2017, 13:43:46 | Сообщение # 1
Сообщений: 67
Репутация: 1 [ +/- ]
Здравствуйте. Мне вот интересно, есть ли толк от таких сокращений:

В условиях:

if (a)
...

нежели:

if (a)
{
...
}

или же, когда задаем переменные:

new x,y,z;

нежели:

new x;
new y;
new z;

или же, связать все евенты в один callback:

public callback(Handle:event, const String:name[], bool:dontBroadcast)
{
if (StrEqual(name, "player_spawn"))
{
...
}

else if (StrEqual(name, "round_end"))
{
...
}
}

нежели:

public player_spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
...
}

public round_end(Handle:event, const String:name[], bool:dontBroadcast)
{
...
}

Считается ли это "оптимизацией" кода?


Сообщение отредактировал Entity - Воскресенье, 12.03.2017, 13:57:02
 
_wS_ Дата: Воскресенье, 12.03.2017, 14:04:21 | Сообщение # 2
Цитата Entity ()
Считается ли это "оптимизацией" кода?

i think nea
 
Entity Дата: Воскресенье, 12.03.2017, 14:17:42 | Сообщение # 3
Сообщений: 67
Репутация: 1 [ +/- ]
_wS_, а вот, к примеру, такой случай. Пару плагинов используют один и тот же евент. Лучше собрать это в единый плагин или толку не будет? На сколько я знаю, sourcemod сам за меня это сделает.
 
_wS_ Дата: Воскресенье, 12.03.2017, 14:38:58 | Сообщение # 4
Наверно зависит от того, как часто event вызывается. Я вот объединил распрыг/прыжки в воздухе/парашут в один, т.к. всем им надо OnPlayerRunCmd, а он оч часто вызывается. И для player_spawn сделал forward, т.к. многие модули ловят player_spawn и делают проверки на vip ли игрок и проч. В общем если event вызывается не часто, то и переживать не стоит. Ну а если объединил несколько event'ов в один и это позволило избежать ненужных повторных проверок/вызовов, то кнеш это лучше, а насколько, зависит от частоты срабатывания event'а, это я так прост думаю, может ошибаюсь.
 
DoubleBigGuy Дата: Воскресенье, 12.03.2017, 14:57:41 | Сообщение # 5
Сообщений: 30
Репутация: 1 [ +/- ]
Это имеет смысл, если несколько плагинов юзают 1 эвент и тебе нужен опр. порядок выполнения функций в пределах данного колбэка, т.к. компилятор юзает лишь 1 поток, и никто не знает, какую ф-ю он поставит выполняться раньше


Сообщение отредактировал DoubleBigGuy - Воскресенье, 12.03.2017, 14:58:48
 
Entity Дата: Воскресенье, 12.03.2017, 15:46:09 | Сообщение # 6
Сообщений: 67
Репутация: 1 [ +/- ]
Понял. Спасибо за помощь :)
 
  • Страница 1 из 1
  • 1
Поиск: