PHP7 RC7 Release對比PHP5.6快速排序20000數據性能體驗以及新語法嘗鮮
最近Zend的PHP7已經 處於最後的BUG修復階段,目前 已經更新RC7,對於Zend官方的說法PHP7的性能大約相比PHP5系列版本 提高2倍以上,增加了一些新的語法,摒棄了PHP5的一些影響性能的因素,主要增加了以下Features 。
- Improved performance: PHP 7 is up to twice as fast as PHP 5.6 性能比5.6提高2倍 Consistent 64-bit support 64位一致性支持Many fatal errors are now Exceptions 增加許多致命錯誤異常 Removal of old and unsupported SAPIs and extensions 移除了舊的不支持的 SAPIS 和一些擴展The null coalescing operator (??) 空合並運算符 Combined comparison Operator (<=>) 結合比較運算符 Return Type Declarations 和C語言等一樣 顯示的返回值類型Scalar Type Declarations 標量類型定義Anonymous Classes 匿名類!處於好奇的心態我同時安裝了PHP5.5 以及PHP7 RC7 Release,體驗一下 , 於是分別體驗了 PHP7的 性能提升 以及 新語法,至於怎麼安裝配置PHP7相信不用我說了,廢話不多說。
http://php.net/ php7 RC7 Release官方地址
https://wiki.php.net/rfc/scalar_type_hints_v5 PHP7 wiki
1、PHP7與PHP5.5性能對比
PHP7的性能相對於PHP5.6提高了多少,下面用一個簡單而且傻逼的代碼來測試一下就知道了,這裡我用5.5版本的PHP對比一下吧,電腦上只有5.5了 懶得去安裝PHP5.6。
如下圖php7和php5.5:
1.1我這裡用一小段傻逼代碼來測試一下PHP:
$high)
return ;
$begin=$low;
$end=$high ;
$key=$arr[$begin];
while($begin<$end)
{
while($begin<$end&&$arr[$end]>=$key)
--$end ;
$arr[$begin]=$arr[$end];
while($begin<$end&&$arr[$begin]<=$key)
++$begin;
$arr[$end]=$arr[$begin];
}
$arr[$begin]=$key;
QuickSort($arr,$low,$begin-1);
QuickSort($arr,$begin+1,$high);
}
$time_start = microtime_float();
$arr=array();
for($i=0;$i
1.2 測試結果
分別在PHP7和PHP5.5下運行20000隨機數據 快速排序算法之後結果 PHP7是PHP5.5的12倍!!!! 看來PHP7開始要雄起了!
下面分別是PHP7 RC7和 PHP5運行上述快速排序 20000數據算法的速度。
2、PHP7新語法體驗
2.1、標量類型 和強類型
PHP7新增四個標量類型 int
, float
, string
bool, 首先要使用強類型 必須在文件中加入指令
declare(strict_types=1)該指令必須是第一個指令而且只有一種用法
所謂嚴格類型強類型的概念就是,我們要摒棄PHP5.6之前的若類型觀念,因為我們知道PHP本身一門若類型語言,正因為如此在類型轉換已經類型檢查導致PHP語言本身性能極為低下php7的這一舉動 也證明了這一點,例如下面代碼
如果把上述代碼改為return 1;才能正常運行,否則運行會報錯,這就是PHP7的強類型約束,此模式下完全摒棄若類型。
2.2 強類型參數
var_dump的結果是 int(3)
2.3 返回類型沖突
返回值類型和強類型約束不同 將跑出異常
getMessage();
}
?>
OK關於Scalar Type就不一個一個寫了
更多的介紹請參考:https://wiki.php.net/rfc/scalar_type_hints_v5#php_rfcscalar_type_declarations
2.4 、關於PHP的 Anonymous Class
簡單匿名類繼承
M2()->M1();
?>
簡單的匿名類實例化
i = $i;
}
});
?>