разница в производительности между strrev () и array_reverse ()

есть ли разница в производительности между этими двумя?

$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,
или какой-нибудь более простой способ сделать это?

0

Решение

Не значимая разница.
И не трудно проверить. Вы должны быть в состоянии написать такой тест без каких-либо проблем.

<?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 секунд

Если вы оптимизируете это, вы, скорее всего, делаете это неправильно. 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector