I
i125
Hallo zusammen,
ich hab ein kleines Perfomance Problem:
Ich soll einen Keygenerator schreiben, der mir 100.000 Keys auswirft.
Rahmenbedingungen:
6 stelliger Code
3 Zahlen (0-9)
3 Buchstaben (Groß und Kleinschreibung erlaubt.)
Laufzeiten:
bei 100 ca. 1sec..
bei 1000 ca. 3sec.
bei 10000 ca. 15sec.
bei 100000 -> geht nimmer, trotz executiontime von 60min (3600)!
Habt ihr einen Ansatz / Verbessungsvorschlag für mich?
Danke und viele Grüsse Alexander.
Der Code:
ich hab ein kleines Perfomance Problem:
Ich soll einen Keygenerator schreiben, der mir 100.000 Keys auswirft.
Rahmenbedingungen:
6 stelliger Code
3 Zahlen (0-9)
3 Buchstaben (Groß und Kleinschreibung erlaubt.)
Laufzeiten:
bei 100 ca. 1sec..
bei 1000 ca. 3sec.
bei 10000 ca. 15sec.
bei 100000 -> geht nimmer, trotz executiontime von 60min (3600)!
Habt ihr einen Ansatz / Verbessungsvorschlag für mich?
Danke und viele Grüsse Alexander.
Der Code:
PHP:
<?php
settype($template, "string");
settype($templatealpha, "string");
$templatealpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ";
$template = "1234567890";
function makedecimal($length){
global $template;
settype($length, "integer");
settype($rndstring, "string");
settype($a, "integer");
settype($b, "integer");
for ($a = 0; $a <= $length; $a++){
$b = rand(0, strlen($template) - 1);
$rndstring .= $template[$b];
}
return $rndstring;
}
function makealpha($length){
global $templatealpha;
settype($length, "integer");
settype($rndstring, "string");
settype($a, "integer");
settype($b, "integer");
for ($a = 0; $a <= $length; $a++){
$b = rand(0, strlen($templatealpha) - 1);
$rndstring .= $templatealpha[$b];
}
return $rndstring;
}
$keys = array();
$countkeys = 10000s;
function makeakey(){
$length = 0;
$output = makedecimal($length);
$output = $output.makealpha($length);
$output = $output.makedecimal($length);
$output = $output.makealpha($length);
$output = $output.makedecimal($length);
$output = $output.makealpha($length);
return $output;
}
while (count($keys)<=$countkeys){
$return = makeakey();
if(!in_array($return,$keys))
{
array_push($keys,$return);
}
}
for($s=0;$s<count($keys);$s++)
{
echo $keys[$s]."<br>";
}
?>