PHP8確認(rèn)支持JIT,加上Swoole給你不一樣的感覺
2019-04-22
自 1994 年 PHP誕生 以來, PHP語言經(jīng)歷了許多改進(jìn),其中性能是開發(fā)人員在評(píng)估新版本時(shí)考慮的主要標(biāo)準(zhǔn)之一。
之前的版本暫且先不提,咱們可以先來嘮嘮目前使用的PHP7.3版本,大家都知道 PHP 7 發(fā)布的時(shí)候號(hào)稱比 PHP5.6 快兩倍,那PHP7.3的性能如何呢?
Phoronix 在 PHP 7.3 Alpha1 發(fā)布時(shí),曾進(jìn)行過一項(xiàng)基準(zhǔn)測試,結(jié)果發(fā)現(xiàn)在常用的 PHPBench 基準(zhǔn)測試中(下圖),PHP 7.3.0 Alpha 1 比之前的 PHP 7.2 穩(wěn)定版本快約 7% ,比 PHP 7.0 快 22% ;
可以說PHP7.3版本的性能已經(jīng)到了一定的地步,但是實(shí)際上這些優(yōu)化似乎已經(jīng)走到極限了。現(xiàn)在 JIT 從底層著手,被認(rèn)為是目前提升 PHP 性能的最佳出路。關(guān)于PHP8是否引入 JIT 的官方投票結(jié)果已于本月1號(hào)公布,因?yàn)橐徊糠执罄校ɡ锩嬗续B哥)投了贊成票!
根據(jù)官方說法:PHP JIT 對(duì)于使用 PHP 的網(wǎng)站來說提速可能并不明顯,因?yàn)?JIT 在 CPU 密集型的代碼上效果最好,所以PHP8的JIT作用主要是發(fā)揮數(shù)學(xué)領(lǐng)域。
而一般情況下,用 PHP 編寫的程序都是 I/O 密集型的。用人話來講就是:PHP 程序往往受限于 I/O 而不是 CPU,使 PHP 代碼運(yùn)行速度變慢的因素往往是它們正在執(zhí)行的 I/O 操作,包括連接、讀取和寫入數(shù)據(jù)庫、高速緩存、文件與套接字等。(以上兩段消息來源于官方:https://wiki.php.net/rfc/jit)
那么這個(gè)時(shí)候Swoole的出現(xiàn)正好是解決IO密集型問題,優(yōu)勢:常駐內(nèi)存,避免重復(fù)加載帶來的性能損耗,提升海量性能,協(xié)程異步,提高對(duì) I/O 密集型場景并發(fā)處理能力(如:百度地圖、百度訂單中心、虎牙直播等);方便地開發(fā)Http、WebSocket、TCP、UDP 等應(yīng)用,可以與硬件通信,使得PHP也可以使用高性能Swoft微服務(wù)架構(gòu),重新定義PHP!