Bu algoritma karşılaştırma adil bir yöntem midir?

0 Cevap

Ben küçük harfe bir dizi dönüştürmek istedim ve en verimli yöntem merak ediyordum. Ben foreach kullanarak array_walk ve birini kullanarak iki seçenek, biri ile geldi ve bunları karşılaştırmak istedim. Bu ikisini karşılaştırmak için en iyi yolu nedir? Ben gözardı daha verimli bir yöntem var mı?

<?
$a = array_fill(0, 200000, genRandomString());
$b = array_fill(0, 200000, genRandomString());
$t = microtime(true);
array_walk($a, create_function('&$a', '$a = strtolower($a);'));
echo "array_walk: ".(microtime(true) - $t);
echo "<br />";
$t = microtime(true);
foreach($b as &$source) { $source = strtolower($source); }
echo "foreach: ".(microtime(true) - $t);


function genRandomString($length = 10) {
    $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $string = '';    

    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters)-1)];
    }

    return $string;
}

Çıktı:

array_walk: 0.52975487709045
foreach: 0.29656505584717

0 Cevap