<?php
function repeat($str)
{
return $str;
}
$start = microtime(true);
for ($i = 0; $i < 100000000; $i++) {
repeat('test');
}
$end = microtime(true);
var_dump($end - $start);
使用 PHP 7.1.8 執行,大概會花費 3.7 秒左右:
$ php main.php
float(3.713329076767)
接下來改成 strict type 的寫法:
<?php
declare(strict_types=1);
function repeat(string $str): string
{
return $str;
}
$start = microtime(true);
for ($i = 0; $i < 100000000; $i++) {
repeat('test');
}
$end = microtime(true);
var_dump($end - $start);
執行時間大概變成 5.3 秒左右:
$ php main.php
float(5.3128638267517)
的確慢了不少,不過先別著急,不要因為慢了一些就打算放棄 strict type hint。
使用 PHP 5.6 去執行第一個測試 (沒有 strict type) 就大約需要 19 秒:
$ php5.6 main.php
float(19.477375030518)
其實把 PHP 版本升級上 7.x 才是正確的吧 XD
沒有留言:
張貼留言
除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)