2011-06-10 4 views
0

Existe-t-il un moyen le plus rapide pour cette ligne?Le moyen le plus rapide de faire des nombres négatifs

ballAngelRadianVector = -ballAngelRadianVector; 

et aussi ceci:

ballDegree = fee - ballDegree ; 
+1

Pourquoi pensez-vous que c'est lent? [Ce n'est pas le goulot d'étranglement que vous cherchez] (http://www.youtube.com/watch?v=k1rlThKe1qo&feature=player_detailpage#t=22s) –

+1

Je ne comprends pas .. Ce n'est pas assez rapide? – Marty

+0

.. c'est rapide, mais peut-être quelque chose de mieux ..; ] ,, –

Répondre

3

Je ne pense pas que vous pouvez obtenir plus rapidement que .. Voir cette vérification rapide, je l'ai fait:

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

trace(getTimer()); //14 
2

je me demandais quelque chose en fait similaire strictement de la curiosité (je sais que ce n'est pas le goulot d'étranglement de mon application). ma question est, est-il plus facile de définir un var à un négatif de lui-même, ou de le multiplier par -1. Je me demande si cela varie d'un CPU, OS, etc, mais j'ai couru le test suivant:

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

qui a produit la sortie:

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

il ressemble à la multiplication par -1 est toujours plus rapide (d'un montant négligeable)

Questions connexes