Revision: 43506
Updated Code
at March 25, 2011 06:13 by Brandon0
Updated Code
<?php header('Content-Type: text/plain'); $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $chars_strlen = strlen($chars); //turns out this is fairly expensive; make sure to only do it once $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand(0, $chars_strlen-1)] . $chars[rand(0, $chars_strlen-1)] . $chars[rand(0, $chars_strlen-1)]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using rand(0, strlen()-1)' . "\n"; # 1.6855049133301 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = substr(str_shuffle($chars), 0, 3); # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using str_shuffle()' . "\n"; # 1.9944579601288 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand() % $chars_strlen] . $chars[rand() % $chars_strlen] . $chars[rand() % $chars_strlen]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using mod strlen()' . "\n"; # 1.0942420959473 seconds
Revision: 43505
Updated Code
at March 25, 2011 06:12 by Brandon0
Updated Code
<?php header('Content-Type: text/plain'); $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $chars_strlen = strlen($chars); //turns out this is fairly expensive; make sure to only do it once $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand(0, $chars_strlen-1)] . $chars[rand(0, $chars_strlen-1)] . $chars[rand(0, $chars_strlen-1)]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using rand(0, strlen()-1)' . "\n"; # 1.6855049133301 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = substr(str_shuffle($chars), 0, 3); # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using str_shuffle()' . "\n"; # 1.9944579601288 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand() % $chars_strlen] . $chars[rand() % $chars_strlen] . $chars[rand() % $chars_strlen]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using mod strlen()' . "\n"; # 1.0942420959473
Revision: 43504
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 25, 2011 06:04 by Brandon0
Initial Code
<?php header('Content-Type: text/plain'); $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand(0, strlen($chars)-1)] . $chars[rand(0, strlen($chars)-1)] . $chars[rand(0, strlen($chars)-1)]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using rand(0, strlen()-1)' . "\n"; # 2.3072600364685 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = substr(str_shuffle($chars), 0, 3); # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using str_shuffle()' . "\n"; # 2.0080540180206 seconds echo "\n" . str_repeat('-', 80) . "\n\n"; $timer = microtime(true); for ($i=0; $i<1000000; $i++) { $uid = $chars[rand() % strlen($chars)] . $chars[rand() % strlen($chars)] . $chars[rand() % strlen($chars)]; # echo $uid . "\n"; } echo microtime(true) - $timer . ' seconds using mod strlen()' . "\n"; # 1.7787578105927 seconds
Initial URL
Initial Description
Testing a couple different ways to create a random string 3 characters long [a-zA-Z0-9]. Turns out mod is pretty quick!
Initial Title
Random string generator
Initial Tags
Initial Language
PHP