PDA

Просмотр полной версии : Вопрос по производительности в определении большего значения.


джонатан
04.02.2010, 21:05
Вот я тут задумался слегка, решил посоветываться. Как вы думаете, как лучше написать в плане производительности, ну и в плане хорошего тона.

1) if(_cNum > finalItemNum) finalItemNum = cNum;
2) finalItemNum = Math.max(finalItemNum, _cNum);
3) Как-то иначе.

udaaff
04.02.2010, 21:16
Что-то не понял ничего.

джонатан
04.02.2010, 21:36
Все просто. Короче, мне нужно, перезаписывать значение переменной finalItemNum, только в том случае, если переменная _cNum, на момент выполнения метода, имеет более высокое значение, нежели переменная finalItemNum.

Незнаю зачем я это писал, помоему выше тоже самое и сказано :)

fessor
04.02.2010, 21:56
когда-то сам занимался подобным, для чего писал програмку типа:

сохранить текущее время
цикл (10000 раз сравнить две величины)
вычесть из текущего времени сохраненное перед циклом
вывести разницу во флешку (в милисекундах)

потом поставить другой способ сравнения величин
запускать несколько раз для каждого способа и желательно поотключать все ненужные программы, которые запускаются в самый неподходящий момент.
+таким способом подтвердил что прибавлять надо к большему меньшее число и полезность коротких имен переменных в циклах

udaaff
04.02.2010, 21:57
var _cNum:Number = 123;
var finalItemNum:Number = 1234;

var t:Number = getTimer();

for (var i:Number = 0; i < 1e6; i++)
{
//if(_cNum > finalItemNum) finalItemNum = _cNum; // 1748
//finalItemNum = Math.max(finalItemNum, _cNum); // 2856
//finalItemNum = _cNumv > finalItemNum ? _cNum : finalItemNum; // 2717
}

trace(getTimer() - t);

Как вы думаете, как лучше написать в плане производительности, ну и в плане хорошего тона.

C if вариант, я думаю, предпочтительнее и в плане хорошего тона, так как присваивание значения будет производиться только при выполнении условия, а не каждый раз.

джонатан
05.02.2010, 15:00
Оу! Круто, спасибо!