Самый быстрый способ сделать отрицательные числа - PullRequest
0 голосов
/ 10 июня 2011

Есть ли самый быстрый способ для этой линии?

ballAngelRadianVector = -ballAngelRadianVector;

, а также это:

ballDegree = fee - ballDegree ;

Ответы [ 2 ]

3 голосов
/ 10 июня 2011

Я не думаю, что вы можете получить быстрее, чем это .. Посмотрите эту быструю проверку, которую я сделал:

var i:uint = 0;
for(i; i<1000000; i++)
{
    var a:int = -i;
}

trace(getTimer()); //14
2 голосов
/ 01 ноября 2012

Мне действительно было интересно, что-то подобное строго из любопытства (я знаю, что это не является узким местом моего приложения).Мой вопрос заключается в том, проще ли установить переменную на отрицательное значение или умножить ее на -1.мне интересно, если это отличается от процессора, ОС и т. д., но я запустил следующий тест:

$number = rand(100000,999999999);
$iterations = 10000000;

$start = microtime(true);

for($i = 0; $i <= $iterations; $i++)
    $number = -$number;

echo "time: ".(microtime(true)-$start)."\n";
//
$start = microtime(true);

for($i = 0; $i <= $iterations; $i++)
    $number = $number * -1;

echo "time: ".(microtime(true)-$start)."\n";
//
$start = microtime(true);

for($i = 0; $i <= $iterations; $i++)
    $number = -$number;

echo "time: ".(microtime(true)-$start)."\n";
//
$start = microtime(true);

for($i = 0; $i <= $iterations; $i++)
    $number = $number * -1;

echo "time: ".(microtime(true)-$start)."\n";

, который произвел:1 постоянно быстрее (на незначительную сумму)

...