php Сравнение времени substr() против preg_match() для проверки начала

Простой скрипт для замера времени (чтобы понять что быстрее, распечатает время в миллисекундах):

<?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()

Key Words for FKN + antitotal forum (CS VSU):