Оптимизация
|
|
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
|
|
| |
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 [ +/- ]
|
|
Понял. Спасибо за помощь :)
|
|
| |