2017-01-20 2 views
0

Gibt es irgendeine Art von Leistungsunterschied zwischen diesen beiden?Leistungsunterschied zwischen strrev() und array_reverse()

$bin = 1000 //8 in decimal 

$bin_a = strrev($bin); 
$bin_a = str_split($bin_a); 

oder

$bin_b = str_split($bin); 
$bin_b = array_reverse($bin_b); 

oder gibt es eine beliebige Funktion String-Array zu konvertieren und rückwärts in der gleichen Zeit?
Ich möchte binäre in Dezimal konvertieren ohne native PHP-Funktion, oder eine einfachere Möglichkeit, dies zu tun?

+3

"Gibt es irgendwelche Leistungsunterschiede" - warum hast du es nicht einfach selbst versucht? –

+0

@FranzGeichmann Ich weiß nicht, wie ich es testen soll:/ –

+0

@yivi yeah thanks! aber was meintest du damit, dass ich es falsch mache für die Optimierung? –

Antwort

1

Kein sinnvoller Unterschied. Und nicht schwierig zu testen. Sie sollten in der Lage sein, einen solchen Test ohne Probleme zu schreiben.

<?php 

$start_a = microtime(true); 
$bin  = "1000"; //8 in decimal 

for ($n = 0; $n < 1000000; $n++) { 

    $bin_a = strrev($bin); 
    $bin_a = str_split($bin_a); 
} 

$end_a = microtime(true); 

echo "Took ", $end_a - $start_a, " seconds \n"; 

$start_b = microtime(true); 


for ($n = 0; $n < 1000000; $n++) { 

    $bin_b = str_split($bin); 
    $bin_b = array_reverse($bin_b); 
} 


$end_b = microtime(true); 

echo "Took ", $end_b - $start_b, " seconds \n"; 

Ausgang, für eine Million Wiederholungen:

Nahm ,26819205284119 Sekunden

Nahm ,39758610725403 Sekunden

Wenn Sie diese optimieren, sind Sie höchstwahrscheinlich es falsch zu machen . :)

Verwandte Themen