亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

zend-opcache - php 的 opcache 和最近的 php jit 有什麼不同?
我想大聲告訴你
我想大聲告訴你 2017-06-26 10:49:19
0
2
1342

opcache 是用來(lái)快取 zend 引擎編譯產(chǎn)生的 opcode,下次就不需要編譯。
最近聽(tīng)說(shuō)了 php jit,看了一下 jit 的概念,描述是這樣的:

JIT編譯(just-in-time compilation),即時(shí)編譯,狹義指某段程式碼即將第一次被執(zhí)行時(shí)進(jìn)行編譯,而後則不用編譯直接執(zhí)行,它為動(dòng)態(tài)編譯的一種特例。

那 php 的 jit 和 opcache 有什麼差別呢?

我想大聲告訴你
我想大聲告訴你

全部回覆(2)
黃舟

原始碼(人認(rèn)識(shí))->字節(jié)碼(解釋器認(rèn)識(shí))->機(jī)器碼(硬體認(rèn)識(shí))
來(lái)看下PHP的執(zhí)行流程,假設(shè)有個(gè)a.php文件,不啟用opacache的流程如下:
a.php->經(jīng)過(guò)zend編譯->opcode->PHP解釋器->機(jī)器碼
啟用opacache的流程如下
a.php->查找opacache緩存,如果沒(méi)有則進(jìn)行zend編譯為opcode並快取->opacode->PHP解釋器->機(jī)器碼
啟用jit的流程如下
a.php->編譯->機(jī)器碼
以後都只執(zhí)行機(jī)器碼,不編譯,效率上高了很多

三叔

JIT這個(gè)概念其實(shí)是來(lái)自Java,在Java裡,JIT編譯器是將字節(jié)碼編譯為機(jī)器碼的過(guò)程。

如果把PHP和Java做對(duì)應(yīng),那麼PHP編譯成OpCode的過(guò)程就是Java編譯為字節(jié)碼的過(guò)程,而引申起來(lái),PHP的JIT,也就是把OpCode編譯為機(jī)器碼的過(guò)程。

更簡(jiǎn)單的說(shuō),PHP程式編譯成OpCode,而後交給PHP解釋器取執(zhí)行,這樣的過(guò)程還是一個(gè)解釋執(zhí)行的過(guò)程。而如果透過(guò)JIT編譯為機(jī)器碼,那麼程式的執(zhí)行效率是可以大幅提高的。

目前熱門(mén)的幾個(gè)腳本語(yǔ)言,都已經(jīng)擁有了自己的JIT,唯獨(dú)PHP這方面還有欠缺。所以,有所期待吧,期待PHP 8

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板