note 93751 added to function.mt-rand

From: Date: Fri, 25 Sep 2009 18:16:35 +0000
Subject: note 93751 added to function.mt-rand
Groups: php.notes 
Request: Send a blank email to php-notes+get-161084@lists.php.net to get a copy of this message
So... mt_rand() or rand() is faster? The script is: <?php $startof_mtrand = microtime(true); for ($i = 1; $i <= 100000; $i++) { $r = mt_rand(1,123456789876543210); } $stopof_mtrand = microtime(true); $startof_rand = microtime(true); for ($i = 1; $i <= 100000; $i++) { $r = rand(1,123456789876543210); } $stopof_rand = microtime(true); $mt_rand = $stopof_mtrand - $startof_mtrand; $rand = $stopof_rand - $startof_rand; $faster = "mt_rand"; if ($rand < $mt_rand) $faster = "rand"; echo "MT_RAND: ".$mt_rand." - RAND: ".$rand." - faster: ".$faster."\n"; ?> The result (32 calls): MT_RAND: 0.763498067856 - RAND: 0.765659093857 - faster: mt_rand MT_RAND: 0.750968933105 - RAND: 0.96776509285 - faster: mt_rand MT_RAND: 0.792922973633 - RAND: 0.80418586731 - faster: mt_rand MT_RAND: 0.787175893784 - RAND: 0.786850214005 - faster: rand MT_RAND: 0.756877183914 - RAND: 0.77552485466 - faster: mt_rand MT_RAND: 0.74907207489 - RAND: 0.773026943207 - faster: mt_rand MT_RAND: 0.756637096405 - RAND: 0.75933098793 - faster: mt_rand MT_RAND: 0.748350143433 - RAND: 0.76425909996 - faster: mt_rand MT_RAND: 0.770343065262 - RAND: 0.812801122665 - faster: mt_rand MT_RAND: 0.767928123474 - RAND: 0.768054962158 - faster: mt_rand MT_RAND: 0.742032051086 - RAND: 0.772170066833 - faster: mt_rand MT_RAND: 0.74090385437 - RAND: 0.755872964859 - faster: mt_rand MT_RAND: 0.74593091011 - RAND: 0.759196043015 - faster: mt_rand MT_RAND: 0.747311115265 - RAND: 0.770936012268 - faster: mt_rand MT_RAND: 0.746823072433 - RAND: 0.768181085587 - faster: mt_rand MT_RAND: 0.751354932785 - RAND: 0.766705989838 - faster: mt_rand MT_RAND: 0.948323965073 - RAND: 0.876231908798 - faster: rand MT_RAND: 0.865748167038 - RAND: 0.999846935272 - faster: mt_rand MT_RAND: 0.766236066818 - RAND: 0.78586602211 - faster: mt_rand MT_RAND: 0.769587993622 - RAND: 0.781677961349 - faster: mt_rand MT_RAND: 0.747069120407 - RAND: 0.766463041306 - faster: mt_rand MT_RAND: 0.747107982635 - RAND: 0.771915912628 - faster: mt_rand MT_RAND: 0.746612071991 - RAND: 0.773558855057 - faster: mt_rand MT_RAND: 0.812180995941 - RAND: 0.77534198761 - faster: rand MT_RAND: 0.9987449646 - RAND: 0.774494886398 - faster: rand MT_RAND: 0.759826183319 - RAND: 0.776414871216 - faster: mt_rand MT_RAND: 0.745733976364 - RAND: 0.775793075562 - faster: mt_rand MT_RAND: 0.747427940369 - RAND: 0.765375137329 - faster: mt_rand MT_RAND: 0.745938777924 - RAND: 0.757652997971 - faster: mt_rand MT_RAND: 0.741550922394 - RAND: 0.768909931183 - faster: mt_rand MT_RAND: 0.750838041306 - RAND: 0.756472826004 - faster: mt_rand MT_RAND: 0.743855953217 - RAND: 0.768594026566 - faster: mt_rand --- so... I think mt_rand is faster, but... <?php for ($a = 1; $a <= 100; $a++) { $startof_mtrand = microtime(true); for ($i = 1; $i <= 100000; $i++) { $r = mt_rand(1,123456789876543210); } $stopof_mtrand = microtime(true); $startof_rand = microtime(true); for ($i = 1; $i <= 100000; $i++) { $r = rand(1,123456789876543210); } $stopof_rand = microtime(true); $mt_rand = $stopof_mtrand - $startof_mtrand; $rand = $stopof_rand - $startof_rand; if ($rand < $mt_rand) { $c_rand++; } else { $c_mt_rand++; } } if ($c_rand > $c_mt_rand) { $fastest = "RAND()"; } else { $fastest = "MT_RAND()"; } echo "Fastest: ".$fastest." [rand: ".$c_rand.", mt_rand: ".$c_mt_rand."]"; ?> Result: Fastest: MT_RAND() [rand: 28, mt_rand: 72] I think rand() might be as fast as mt_rand(), but we need a lots of results... ---- Server IP: 92.43.200.200 Probable Submitter: 86.101.115.161 ---- Manual Page -- http://www.php.net/manual/en/function.mt-rand.php Edit -- https://master.php.net/note/edit/93751 Del: integrated -- https://master.php.net/note/delete/93751/integrated Del: useless -- https://master.php.net/note/delete/93751/useless Del: bad code -- https://master.php.net/note/delete/93751/bad+code Del: spam -- https://master.php.net/note/delete/93751/spam Del: non-english -- https://master.php.net/note/delete/93751/non-english Del: in docs -- https://master.php.net/note/delete/93751/in+docs Del: other reasons-- https://master.php.net/note/delete/93751 Reject -- https://master.php.net/note/reject/93751 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#161084) next »