Sneller mét hulpvariabele
In de volgende methode is $length een hulpvariabele:
Dat kan korter en sneller, dacht ik, door de hulpvariabele te verwijderen:
Deze tweede variant, zonder hulpvariabele, is echter significant langzamer. Wat is daarvan de logische verklaring?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
* @param int $min Minimumlengte van het wachtwoord.
* @param int $max Maximumlengte van het wachtwoord.
* @return string Aselect wachtwoord.
*/
public static function getRandomPassword($min = 8, $max = 12)
{
$password = (string) null;
$length = mt_rand($min, $max);
while (strlen($password) < $length) {
...
}
return $password;
}
?>
/**
* @param int $min Minimumlengte van het wachtwoord.
* @param int $max Maximumlengte van het wachtwoord.
* @return string Aselect wachtwoord.
*/
public static function getRandomPassword($min = 8, $max = 12)
{
$password = (string) null;
$length = mt_rand($min, $max);
while (strlen($password) < $length) {
...
}
return $password;
}
?>
Dat kan korter en sneller, dacht ik, door de hulpvariabele te verwijderen:
Code (php)
Deze tweede variant, zonder hulpvariabele, is echter significant langzamer. Wat is daarvan de logische verklaring?
PHP hulp
26/04/2024 02:36:02- SanThe -
12/02/2013 13:00:15In je tweede script moet er steeds (minstens 8 keer) een random getal worden gegenereerd.
In het eerste script slechts 1 keer.
Uiteraard is dat langzamer.
In het eerste script slechts 1 keer.
Uiteraard is dat langzamer.
Gewijzigd op 12/02/2013 13:01:34 door - SanThe -
Kris Peeters
12/02/2013 13:06:01Niet alleen langzamer.
Het doet niet het zelfde.
Het is zoals bij Russische roulette.
Bij de tweede methode wordt telkens de revolver opnieuw gedraaid, bij de eerste niet.
Dat maakt een meer dan substantieel verschil.
Het doet niet het zelfde.
Het is zoals bij Russische roulette.
Bij de tweede methode wordt telkens de revolver opnieuw gedraaid, bij de eerste niet.
Dat maakt een meer dan substantieel verschil.