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