PHP中的类型提示的性能开销有多重要-在决定是否使用它时是否足够重要?

最佳答案

不,那不重要。如果您需要做一些算法密集的事情,例如声音处理或3D编程,则应该使用另一种编程语言。

如果您需要硬数据,请进行基准测试...

<?php

function with_typehint(array $bla)
{
    if(count($bla) > 55) {
        die("Array to big");
    }
}

function dont_typehint($bla)
{
    if(count($bla) > 55) {
        die("Array to big");
    }
}

function benchmark($fn)
{
    $start = microtime(TRUE);
    $array = array("bla", 3);
    for($i=0; $i<1000000; $i++) {
        $fn($array);
    }
    $end = microtime(TRUE);
    return $end-$start;
}

printf("with typehint: %.3fs\n", benchmark("with_typehint"));
printf("dont typehint: %.3fs\n", benchmark("dont_typehint"));

在我的计算机上,性能是相同的。有时使用更快,有时无需键入提示:
$ php Documents/type_hinting.php
with typehint: 0.432s
dont typehint: 0.428s

$ php Documents/type_hinting.php
with typehint: 0.414s
dont typehint: 0.416s

10-04 14:12