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
- 1024 reads