Michael Staehle: Perl - Geschwindigkeit von Berechnungen

Beitrag lesen

$a = 1;
$c = 1;
$num = 25;

$zeit1 = time();
for( $i = 1 ; $i <= 1000000 ; $i++ )
{
   ($a + $c) % $num;
   $c++;
}
$zeit2 = time();

print "sekunden: " . ( $zeit2 - $zeit1 ) . "\n" ;

$a = 1;
$c = 1;
$num = 25;

$zeit1 = time();
for( $i = 1 ; $i <= 1000000 ; $i++ )
{
   $a + $c < $num ? $a + $c : $a + $c - $num;
   $c++;
}
$zeit2 = time();

print "sekunden: " . ( $zeit2 - $zeit1 ) . "\n";

Und b) ist deutlich schneller (fast dobbelt).

Hallo!

Eine Frage an die Perl-Profis:

Ich möchte eine Funktion, die eine Zahl, die bei einen bestimmten Wert überschreitet, wieder von 0 weiterzählen lässt
$a und $num sind fix, $c wird bei jedem Schleifendurchlauf um 1 erhöht.

a)  $a+$c < $num ? $a+$c : $a+$c-$num

b)  ($a+$c) % $num

beides ergibt das selbe, die Frage ist, was ist schneller?
Denn das Ding ist bestandteil einer Sortierfunktion, und muss somit zig 1000 mal ausgeführt werden.