Does tail-recursion use less time and memory than non-tail-recursion? Why my result is opposite?

Does tail-recursion use less time and memory than non-tail-recursion? Why my result is opposite?

sum 1-456789 using tail-recursion and non-tail-recursion:

<?php
function tail_recursion($num, $sum){
    if($num == 0){
        return $sum;
    }
    $sum = $sum + $num;
    return tail_recursion($num-1, $sum);
}

function non_tail_recursion($num){
    if($num == 0){
        return 0;
    }
    return $num + non_tail_recursion($num-1);
}
$tail_start = [
    'time' => microtime(1),
    'memo' => memory_get_usage(1),
];
echo tail_recursion(456789, 0).PHP_EOL;
$tail_end = [
    'time' => microtime(1),
    'memo' => memory_get_usage(1),
];
echo 'tail recursion used: '.($tail_end['time'] - $tail_start['time']).' s, '.($tail_end['memo'] - $tail_start['memo']).' memory'.PHP_EOL;


$non_tail_start = [
    'time' => microtime(1),
    'memo' => memory_get_usage(1),
];
echo non_tail_recursion(456789).PHP_EOL;
$non_tail_end = [
    'time' => microtime(1),
    'memo' => memory_get_usage(1),
];
echo 'non tail recursion used: '.($non_tail_end['time'] - $non_tail_start['time']).' s, '.($non_tail_end['memo'] - $non_tail_start['memo']).' memory'.PHP_EOL;

output:

104328323655
tail recursion used: 0.19636392593384 s, 2097152 memory
104328323655
non tail recursion used: 0.17366099357605 s, 0 memory
Comments (2)