Pawn. Оптимизация циклов игроков

Замутил тестик всех способов создания циклов «MAX_PLAYERS» с использованием OnPlayerConnect и OnPlayerDisconnect(ведь тики на них тоже тратятся).

В тесте ID’ы подключающихся различны на 10, поэтому способы, которые запоминают все имеющиеся ID’ы будут лидировать.

Код тут: http://pastebin.com/JUCRZDDY

Результаты:

IsPlayerConnected: 509
GetMaxPlayers: 503
GetPlayerLastID: 591 (мною модифицированный способ от Alex009)
PLID: 187 (предложенный вариант)
foreach: 246 (foreach от Y_Less’a)
foreach_step: 647 (foreach который опубликовал степашка)

 
 

Дальше я решил количество подключений и отключений привести к более реальному количеству.

Код тут: http://pastebin.com/VP6CR7fv

Результаты:

IsPlayerConnected: 888
GetMaxPlayers: 304
GetPlayerLastID: 2169 (мною модифицированный способ от Alex009)
PLID: 145 (предложенный вариант)
foreach: 123 (foreach от Y_Less’a)
foreach_step: 134 (foreach который опубликовал степашка)
forscan: 168 (forscan от Jester(более удобный PLID))

Тут результаты куда более приятнее. Забавно, что способ с GetPlayerLastID стал работать в несколько раз медленнее.

Собственно я делаю выбор за foreach Y_Less’а — быстро, удобно, функционально.

Перейти к верхней панели