Цикл (Вопрос) -
Romz - 15.01.2014
Какой вариант будет быстрей работать при большом онлайне?
PHP Code:
for(new playerid = 0; playerid != 500; playerid++) {
if(IsPlayerConnected(playerid)) {
// Код
}
}
или
PHP Code:
for(new playerid = 0; playerid != 500; playerid++) {
if(!IsPlayerConnected(playerid)) continue;
// Код
}
Тестировал на сервере с онлайном 1, разницы вроде нету. Но вот интересно если будет онлайн большой какой вариант победит? Или же они одинаковы по скорости?
По идея я думаю вариант 2 должен быть быстрее так как он сразу же если игрока нету под идом начинает проверять нового, а первый должен дойти до конца хоть и не выполнит код который написан в (
// Код )
Re: Цикл (Вопрос) -
Stepashka - 15.01.2014
они одинаковы по скорости.
Re: Цикл (Вопрос) -
Urukhay - 15.01.2014
В данном случае разницы нет, так как проверка она и в Африке проверка.
Но я знаю, по крайней мере кто то писал, что декрементация быстрее инкрементации.
То есть используйте такой вид:
pawn Code:
for(new pl = GetMaxPlayers(); pl != -1; pl--)
{
if(!IsPlayerConnected(pl)) continue;
// если подключен
}
Re: Цикл (Вопрос) -
Stepashka - 15.01.2014
Quote:
Originally Posted by Urukhay
В данном случае разницы нет, так как проверка она и в Африке проверка.
Но я знаю, по крайней мере кто то писал, что декрементация быстрее инкрементации.
То есть используйте такой вид:
pawn Code:
for(new pl = GetMaxPlayers(); pl != -1; pl--) { if(!IsPlayerConnected(pl)) continue; // если подключен }
|
pawn Code:
for(new playerid = 0; playerid != 500; ++playerid)
Re: Цикл (Вопрос) -
Mutha_X - 15.01.2014
Надо ж быть таким лолом, чтобы такое написать:
ты не поверишь, но
var--;
равносильно
var=var-1;
что в свою очередь равносильно
var=var
+ 0xFFFFFFFF; // вкуси перца
А вот пост- и пре- инкрементация/декрементация уже может различаться.(добавлено: Степаш о том же)
Re: Цикл (Вопрос) -
Stepashka - 15.01.2014
Грубо:
Code:
var++
function(&var){
new tempVar = var;
var = var + 1;
return tempVar;
}
++var
function(&var){
var = var + 1;
return var;
}
var--
function(&var){
new tempVar = var;
var = var - 1;
return tempVar;
}
--var
function(&var){
var = var - 1;
return var;
}
разницу чуем?
Если так нужно посмотреть точную начинку - ищите по форуму,
dimonml выкладывал код того что получается после компиляции.
ВАЖНО: Скорости не добавит, компилятор не дурак и все это приводит к наиболее оптимальному виду.
Re: Цикл (Вопрос) -
Romz - 15.01.2014
Спасибо за ответы.
Stepashka, если можно закройте тему пожалуйста так как по данной теме больше вопросов у меня нету.