一千萬個為什麽

搜索

PHP加速器與即時編譯

來自維基百科:

大多數PHP加速器通過緩存PHP的編譯字節碼來工作   腳本,以避免解析和編譯源代碼的開銷   每個請求(部分或全部可能永遠不會被執行)。至   進一步提高性能,緩存的代碼存儲在共享中   記憶並從那裏直接執行,最大限度地減少慢速   磁盤讀取和內存復制在運行時。

及時編譯:

JIT編譯器代表了一種混合方法,並且正在進行翻譯   與口譯員一樣,持續緩存   代碼,以盡量減少性能下降。

所以在PHP上使用PHP加速器如APC對“即時”編譯PHP的性能有相同的影響(假設它可以這樣做)....實際上它們實際上是同一個東西嗎?

最佳答案

因此,在PHP上使用PHP加速器(例如APC)對“即時”編譯PHP的性能具有相同的影響(假設它可以這樣做)....實際上它們實際上是同一個東西嗎?

相同的概念,不同的執行。

在大多數圈子中提到JIT時,它指的是將虛擬機字節碼編譯為 native 字節碼。例如,Facebook的 HHVM 是一個使用 JIT引擎

但是,PHP的本機虛擬機不會對本機字節碼執行JIT。事實上,它根本不是傳統意義上的JIT。雖然整個文件按需編譯為 PHP字節碼,但實際上並不是JIT。

註意術語“PHP加速器”。回到PHP4時代,PHP解析器創建的字節碼可以稍微優化一下,以獲得更好的性能。自PHP5早期以來就不需要這樣做了。 APC,Zend“優化器”和其他“加速器”產品用於提高PHP性能的唯一事物是緩存字節碼。不應再使用術語“加速器”來消除歧義。

如果你正在使用標準的PHP,那麽你想要一個字節碼緩存,只是避開那些說他們試圖進行PHP字節碼優化的產品。

轉載註明原文: PHP加速器與即時編譯