Показать сообщение отдельно
Старый 13.02.2011, 14:17
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 17  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
Ладно... Объясню по-другому.

Я проверял быстродействие разных элементарных математический операций. Результаты (10000000 итераций):

(+): 819
(-): 748
(*): 775
(/): 856
(%): 1263
(cos): 3102
(atan2): 3807

Если честно, немного удивил результат для умножения и деления. До этого я получал другие показатели.

Код проверки:

Код AS3:
var iterCount:uint = 10000000;
 
var i:uint;
var time:Number;
var b:Number = Math.random();
 
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	i+b;
}
trace("(+): "+(getTimer()-time));
 
// =====================================
time = getTimer();
for(i = 1 ; i < iterCount ; i++)
{
	i-b;
}
trace("(-): "+(getTimer()-time));
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	i*i;
}
trace("(*): "+(getTimer()-time));
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	i/b;
}
trace("(/): "+(getTimer()-time));
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	b%i;
}
trace("(%): "+(getTimer()-time));
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	Math.cos(i);
}
trace("(cos): "+(getTimer()-time));
// =====================================
time = getTimer();
for(i = 1 ; i <= iterCount ; i++)
{
	Math.atan2(b,i);
}
trace("(atan2): "+(getTimer()-time));
// =====================================