Просмотр полной версии : Вопрос по производительности в определении большего значения.
джонатан
04.02.2010, 21:05
Вот я тут задумался слегка, решил посоветываться. Как вы думаете, как лучше написать в плане производительности, ну и в плане хорошего тона.
1) if(_cNum > finalItemNum) finalItemNum = cNum;
2) finalItemNum = Math.max(finalItemNum, _cNum);
3) Как-то иначе.
джонатан
04.02.2010, 21:36
Все просто. Короче, мне нужно, перезаписывать значение переменной finalItemNum, только в том случае, если переменная _cNum, на момент выполнения метода, имеет более высокое значение, нежели переменная finalItemNum.
Незнаю зачем я это писал, помоему выше тоже самое и сказано :)
когда-то сам занимался подобным, для чего писал програмку типа:
сохранить текущее время
цикл (10000 раз сравнить две величины)
вычесть из текущего времени сохраненное перед циклом
вывести разницу во флешку (в милисекундах)
потом поставить другой способ сравнения величин
запускать несколько раз для каждого способа и желательно поотключать все ненужные программы, которые запускаются в самый неподходящий момент.
+таким способом подтвердил что прибавлять надо к большему меньшее число и полезность коротких имен переменных в циклах
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
Оу! Круто, спасибо!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.