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

私は実際、好奇心から厳密に似たようなことを考えていました(これが私のアプリケーションのボトルネックではないことはわかっています)。私の質問は、変数をそれ自体の負の値に設定する方が簡単ですか、それとも -1 を掛ける方が簡単ですか? これがCPU、OSなどによって異なるかどうか疑問に思っていますが、次のテストを実行しました。

$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 に答える