4 Stimmen

Wie bekomme ich am schnellsten eine zufällige php-Nummer?

Ich versuche, die Zwischenspeicherung zu verhindern, indem ich ein '? t=' an das Ende meiner JS-Dateien anhänge. Was ist der schnellste Weg, eine solche Zahl zu erhalten? time() oder rand() oder etwas anderes?

0 Stimmen

Am schnellsten bedeutet am wenigsten ressourcenintensiv.

8 Stimmen

Warum sind Sie so besorgt über die Geschwindigkeit bei dieser speziellen Operation? Haben Sie ein Profil erstellt? Wie viel Zeit erwarten Sie zu sparen, wenn Sie das eine dem anderen vorziehen? ...erlauben Sie mir, etwas direkter zu sein: Es macht keinen bedeutenden Unterschied. Wir reden hier von einem Unterschied, der in Nanosekunden gemessen wird.

2 Stimmen

@Frank Farmer: Es macht immer noch Spaß, darüber zu reden :)

1voto

DevWay Agence Punkte 45

Dieser Artikel ist schon etwas älter, aber hier ist ein Zeitvergleich für 10 Millionen Ausführungsfälle

Gesamtausführungszeit Test mt_rand : 0.0067805965741475 Min.

Gesamtausführungszeit Testrand : 0.0068778196970622 Min.

Gesamtausführungszeit Testzeit : 0.0088921149571737 Min.

es sieht so aus, als ob mt_rand etwas schneller ist.

$i=10000000;
$time_start_1 = microtime(true); 
//test script 1
while($i--) {
    mt_rand(1,100);
}
$time_end_1 = microtime(true);

$i=10000000;
$time_start_2 = microtime(true); 
//test script 2
while($i--) {
    rand(1,100);
}
$time_end_2 = microtime(true);

$i=10000000;
$time_start_3 = microtime(true); 
//test script 3
while($i--) {
    time();
}
$time_end_3 = microtime(true);

//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time_1 = ($time_end_1 - $time_start_1); //   /60
$execution_time_2 = ($time_end_2 - $time_start_2); //   /60
$execution_time_3 = ($time_end_3 - $time_start_3); //   /60

//execution time of the script
echo '<br>';
echo '<b>Total Execution Time Test mt_rand :</b> '.($execution_time_1/60).' Mins'.'<br>';
echo '<b>Total Execution Time Test rand :</b> '.($execution_time_2/60).' Mins'.'<br>';
echo '<b>Total Execution Time Test time :</b> '.($execution_time_3/60).' Mins'.'<br>';

0voto

Nathan Punkte 1640
srand(time());
echo '?t=' . rand();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X