0

这条线有什么最快的方法吗?

ballAngelRadianVector = -ballAngelRadianVector;

还有这个:

ballDegree = fee - ballDegree ;
4

2 回答 2

3

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

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

trace(getTimer()); //14
于 2011-06-10T04:35:01.797 回答
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总是更快(可以忽略不计)

于 2012-11-01T11:44:50.133 回答