php Сравнение времени substr() против preg_match() для проверки начала
Primary tabs
Простой скрипт для замера времени (чтобы понять что быстрее, распечатает время в миллисекундах):
<?php <?php $count = 1000000; $str = '/video/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some/some?id=1234'; // test 1 $start = microtime(true); for ($i=1; $i<=$count; $i++) { $a = substr($str, 0, 6) === "/video"; } var_dump($a); echo 'Time for substr:' . round((microtime(true) - $start) * 1000) . "\n"; // test 2 без привязки к началу $start = microtime(true); for ($i=1; $i<=$count; $i++) { $a = preg_match('/\/video.*$/', $str, $matches);; } var_dump($a); echo 'Time for preg_match 1:' . round((microtime(true) - $start) * 1000) . "\n"; // test 2 с привязкой к началу $start = microtime(true); for ($i=1; $i<=$count; $i++) { $a = preg_match('/^\/video.*$/', $str, $matches);; } var_dump($a); echo 'Time for preg_match 2:' . round((microtime(true) - $start) * 1000) . "\n";
-- в даном случае (именно для этого примера, выходных данных) привязка к началу особо не влияет на скорость, но preg_match явно сильно проигрывает куда более простому вызову substr()
- Log in to post comments
- 808 reads