strrev()和array_reverse()之间的性能差异

时间:2017-01-20 08:13:45

标签: php binary decimal

这两者之间是否存在任何性能差异?

$bin = 1000 //8 in decimal

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

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

或是否有任何函数将字符串转换为数组并同时反转?
我想手动将二进制转换为十进制而不使用本机php函数, 或者更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

没有意义的区别。 并不难以测试出来。你应该能够毫无困难地编写这样的测试。

<?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";

输出,重复一百万次:

  

花了0.26819205284119秒

     

花了0.39758610725403秒

如果您正在为此进行优化,那么您很可能做错了。 :)