PHP7 JIT 相关开源项目(JPHP)
PHP 7.1 是否達(dá)到了最佳性能?
鳥哥惠新宸答:不能說最,別看 PHP 7.1 現(xiàn)在這么快,但相比其它語言,在某些場(chǎng)景下,還是有差距的。這跟它天然的像動(dòng)態(tài)、符號(hào)表、間接引用等特性有很大關(guān)系。PHP 7.1 相比 7.0 來說,做的最大的工作,就是一個(gè)類型推斷系統(tǒng)加一個(gè)類型相關(guān)的中間代碼執(zhí)行引擎。這個(gè)不是新的工作,在2013年我們做 PHP 5.5 的 JIT 的時(shí)候類型推斷系統(tǒng)已經(jīng)做出來了,但當(dāng)時(shí)把這個(gè)項(xiàng)目停掉了,現(xiàn)在把那項(xiàng)工作其中的類型推斷部分拿過來,放到 7.1 。基于這個(gè)類型推斷未來還可以做更多的東西。PHP 7.1 更多的是對(duì) 7.0 未完成的工作的一個(gè)補(bǔ)充。 詳情請(qǐng)移步:【開源訪談】鳥哥惠新宸:PHP 7.1 的新特性我并不是很喜歡
本人找了一個(gè) PHP JIT 相關(guān)開源項(xiàng)目JPHP了解一下
JPHP是使用Java VM的PHP的新實(shí)現(xiàn)。它支持PHP語言(7.0+)的許多功能。
它是如何工作的?JPHP是一個(gè)編譯器javac,它將PHP源代碼編譯成JVM字節(jié)碼,然后可以在Java VM上執(zhí)行結(jié)果。
- 官方網(wǎng)站:j-php.net
在生產(chǎn)中
我們?yōu)槌鯇W(xué)者開發(fā)一個(gè)新的IDE,比如Game Maker或Scirra Construct。它基于JPHP,JavaFX,Java 8,Gradle,并允許為L(zhǎng)inux,Windows和Mac(將來可能是Android和其他平臺(tái))創(chuàng)建桌面游戲和應(yīng)用程序。項(xiàng)目名稱是DevelNext(github.com/jphp-compil…),項(xiàng)目的當(dāng)前狀態(tài)和版本是BETA。該項(xiàng)目尚未被英文本地化。
目標(biāo)
JPHP不是Zend PHP引擎或Facebook HHVM的替代品。我們不打算為JPHP實(shí)現(xiàn)zend運(yùn)行時(shí)庫(kù)(例如Curl,PRCE等)。
我們的項(xiàng)目于2013年10月開始。原因如下:
特征
- PHP 5.6+(以及PHP 7.0和7.1中的許多語言功能)。
- JIT(約2.5倍PHP 5.6,PHP 7約1.1倍),Optimizer -?性能基準(zhǔn)
- 在PHP代碼中使用java庫(kù)和類。
- Unicode字符串(UTF-16,就像Java一樣)
- 線程,套接字,環(huán)境架構(gòu)(比如runkit zend擴(kuò)展中的沙盒對(duì)象)。
- GUI(搖擺或JavaFX)
- 嵌入式緩存系統(tǒng)的類和功能
- 可選的熱重新加載類和功能
- 能夠在Android操作系統(tǒng)上使用?(還沒)
JPHP從PHP 7.0,7.1支持什么?
- 上下文敏感Lexer。
- 修復(fù)list()行為不一致。
- Throwable接口。
- 組使用聲明。
- 標(biāo)量和可選類型提示。
- 返回類型提示。
- 無效和可重寫類型提示。
- 統(tǒng)一變量語法(部分)。
- 空合并運(yùn)算符??。
- 多個(gè)catch語法。
- 短列表語法。
- 列表鍵。
- 類常量可見性修飾符。
- 太空船操作員<=>。
- 發(fā)電機(jī)代表團(tuán)yield from。
- 發(fā)生器返回表達(dá)式。
- intdiv()?功能。
文檔
- Wiki在這里:閱讀
- 你可以在這里找到最新的api文檔:http?:?//jphp-docs.readthedocs.org/
- 為了對(duì)api文檔作出貢獻(xiàn),你可以分叉docs項(xiàng)目:https://github.com/jphp-compiler/docs
入門(Hello World)
j-php.net/wiki/Gettin…
熱跑基準(zhǔn)?
// via jphp ./gradlew bench// via php php -f bench/src/bench.php復(fù)制代碼從源代碼構(gòu)建SNAPSHOT
使用gradle install來構(gòu)建和安裝jphp模塊和庫(kù)到本地mavel庫(kù)。在此之后,您可以在您的項(xiàng)目中使用jphp作為maven依賴項(xiàng)。
org.develnext.jphp:jphp-<module>:<version>-SNAPSHOT
原文:github.com/jphp-compil…
轉(zhuǎn)載于:https://juejin.im/post/5aa770585188255582520778
總結(jié)
以上是生活随笔為你收集整理的PHP7 JIT 相关开源项目(JPHP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【用故事解读 MobX源码(一)】 au
- 下一篇: PHP/TP5 接口设计中异常处理