Mon rand() est plus gros que ton mt_rand() !
Posté : 13 janv. 2009, 17:43
Hey
,
Je voulais éclaircir un point de la documentation avec vous.
Le résultat est le suivant : J'ai refait plusieurs fois ce test et le résultat est toujours le même : rand() est plus rapide que mt_rand(). Alors, la documentation nous aurait menti ?
Je voulais éclaircir un point de la documentation avec vous.
Comme je vais devoir tirer plusieurs milliers de nombres aléatoires, je me dis : chouette ! Mais avant, un test de précaution :Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand(). mt_rand() est une fonction de remplacement, pour cette dernière. Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " » Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc.
$b = new Hoa_Bench();
$b->rand->start();
for($i = 0; $i < 100000000; $i++) rand();
$b->rand->stop();
$b->mt_rand->start();
for($i = 0; $i < 100000000; $i++) mt_rand();
$b->mt_rand->stop();
echo $b; Même pas peur, allons-y pour 100 millions de tirages.Le résultat est le suivant :
Code : Tout sélectionner
rand ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 23804.974 ms, 92.585 %
mt_rand |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 25711.369 ms, 100 %