制作负数的最快方法

时间:2011-06-10 04:23:32

标签: flash actionscript-3 performance math negative-number

这条线路有最快捷的方式吗?

ballAngelRadianVector = -ballAngelRadianVector;

还有这个:

ballDegree = fee - ballDegree ;

2 个答案:

答案 0 :(得分:3)

我认为你不能比这更快..看到我做的快速检查:

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

trace(getTimer()); //14

答案 1 :(得分:2)

我实际上是在好奇地想知道类似的事情(我知道这不是我申请的瓶颈)。我的问题是,将var设置为负值或将其乘以-1更容易。我想知道这是否因CPU,操作系统等而异,但我运行了以下测试:

$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";

产生了输出:

time: 0.66124606132507 (-self)
time: 0.64714503288269 (*-1)
time: 0.66628909111023 (-self)
time: 0.65639805793762 (*-1)

所以看起来乘以-1总是更快(可忽略不计的数量)