国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

HHVM簡(jiǎn)介(譯)

2019-11-15 01:35:03
字體:
供稿:網(wǎng)友
HHVM簡(jiǎn)介(譯)

原文鏈接:http://coderoncode.com/2013/07/24/introduction-hhvm.html

“HHVM(HipHop Virtual Machina)把php代碼轉(zhuǎn)換成高層次的字節(jié)碼(普遍認(rèn)為是一種中間語言)。然后這樣的字節(jié)碼在運(yùn)行時(shí)被JIT(just-in-time)編譯器動(dòng) 態(tài)地轉(zhuǎn)換成x64機(jī)器碼。基于這樣的考慮,HHVM和包括C#/CLR和java/JVM在內(nèi)的其他語言中的虛擬機(jī)類似。”

有點(diǎn)長(zhǎng)的歷史

在2008年早期Facebook網(wǎng)站便工作在HipHop(一個(gè)PHP執(zhí)行引擎,現(xiàn)在是HPHP)上。其原始的動(dòng)機(jī)便是把Facebook網(wǎng)站中 大量的PHP代碼轉(zhuǎn)換成C++代碼,以便節(jié)約資源和提升應(yīng)用性能。其原始版本便是HPHPc(一個(gè)把PHP代碼轉(zhuǎn)換成C++代碼的編譯器)。

在接下來的兩年時(shí)間里Facebook網(wǎng)站繼續(xù)工作在HipHop上,這時(shí)候的HipHop增加了HPHPi(一個(gè)HPHP的”開發(fā)模式”版本)和 HPHPd(HipHop debugger)。運(yùn)行在HipHop平臺(tái)上的PHP應(yīng)用程序允許開發(fā)者查看和單步執(zhí)行代碼并且可以交互式地調(diào)試。

在巔峰時(shí)期,運(yùn)行在HipHop上的PHP代碼在性能上是運(yùn)行在ZEND引擎上的PHP代碼的6倍。然而,在HipHop的第一次迭代版上仍然有幾個(gè)缺點(diǎn):

1、HPHPc不是完全的支持PHP語言,最明顯的便是不支持create_function和eval這兩個(gè)函數(shù)。誠(chéng)然,我并不認(rèn)為對(duì)于不支持eval這個(gè)函數(shù)是件壞事。

2、Facebook的開發(fā)者必須維護(hù)兩個(gè)不同的引擎(HPHPc和HPHPi),這樣的結(jié)果便是導(dǎo)致重復(fù)的工作和浪費(fèi)資源。

3、最后,HPHPc需要完全不同的部署過程,這樣會(huì)妨礙到它被PHP開發(fā)者所采納。

鑒于這些問題,F(xiàn)acebook公司在2010年早期采取了兩個(gè)關(guān)鍵行動(dòng)。其一便是把HipHop平臺(tái)開源了,開源這樣的一個(gè)項(xiàng)目是一個(gè)偉大的方 式,便于構(gòu)建一個(gè)圍繞著這個(gè)項(xiàng)目的社區(qū)并且可以從社區(qū)中獲取到來自外界的幫助。其二,F(xiàn)acebook公司開始了HipHop在現(xiàn)代版本上的發(fā)展,這便是 HHVM(HipHop virtual Machine)。HHVM提升了HPHPc的健壯性并且修正了許多關(guān)鍵性的問題。

HHVM建立在HPHPc的頂端,其工作方式便是把PHP代碼轉(zhuǎn)換成高層次的字節(jié)碼(一種中間語言)。這樣的字節(jié)碼在運(yùn)行時(shí)被JIT(Just-In-Time)編譯器動(dòng)態(tài)地轉(zhuǎn)換成機(jī)器碼。

如果你像我一樣,你可能對(duì)字節(jié)碼、機(jī)器碼和Just-In-Time編譯器還有著模糊的記憶。所以,讓我們暫時(shí)偏離一下主題快速地回顧下這些概念,然后講解下他們是如何在HHVM中扮演關(guān)鍵性的角色。

字節(jié)碼、機(jī)器碼以及JIT,哦,我的…!

字節(jié)碼:它是一個(gè)人們讀不懂的代碼,被設(shè)計(jì)來讓解釋器或者編譯器高效執(zhí)行的。當(dāng)HHVM第一次導(dǎo)入我們的項(xiàng)目,它把所有的PHP代碼轉(zhuǎn)換成字節(jié)碼這樣的中間形式。產(chǎn)生的字節(jié)碼和特定類型的計(jì)算機(jī)結(jié)構(gòu)無關(guān),因此可以很方便地在不同的系統(tǒng)間移植。

機(jī)器碼:它是一組被設(shè)計(jì)成可以由CPU直接執(zhí)行的指令。如果你曾經(jīng)玩過Assembly(誰沒玩過呢?),你一定能很好的理解什么是機(jī)器碼。對(duì)于沒有興趣玩assembly或者類似語言的極少數(shù)的你們來說,機(jī)器碼是由編譯器或者解釋器產(chǎn)生的并且可以直接被CPU執(zhí)行的代碼。

JIT(Just In Time)編譯器:Just in time編譯技術(shù)是用來提升軟件性能的一項(xiàng)技術(shù)。它的實(shí)現(xiàn)原理便是在執(zhí)行期間編譯存儲(chǔ)在內(nèi)存中字節(jié)碼,JIT編譯器導(dǎo)入這些字節(jié)碼并且編譯成所需要的部分。

通過應(yīng)用這些技術(shù)所獲得的性能和速度便能給HipHop及隨后的HHVM提供核心優(yōu)勢(shì)。保持一個(gè)PHP代碼庫,同時(shí)實(shí)現(xiàn)性能上堪比編譯過的應(yīng)用程序。

目前的HHVM基本上支持整個(gè)的PHP5.4版本,然而HHVM仍然有妨礙到一些應(yīng)用程序執(zhí)行的許多bugs。基于這樣的原因,F(xiàn)acebook公 司設(shè)置的目標(biāo)便是能讓開源的頂尖的前20個(gè)PHP應(yīng)用程序運(yùn)行在HHVM上。第一個(gè)運(yùn)行在其上的最流行的應(yīng)用便是WordPRess。

接下來

現(xiàn)在我們對(duì)于HHVM究竟是做什么的及其優(yōu)勢(shì)有了很好的了解,并且對(duì)于運(yùn)行在其上的應(yīng)用程序我們可以很方便的開始測(cè)試了。在接下來的文章里,我會(huì)介 紹到如何在虛擬機(jī)上安裝HHVM,以及在你的應(yīng)用程序上運(yùn)行基準(zhǔn)測(cè)試,最后(雙手合十),介紹如何在HHVM上運(yùn)行Magento。

更多文章請(qǐng)關(guān)注我的個(gè)人博客:http://www.nomoneynowife.com


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 冕宁县| 金堂县| 康马县| 兴海县| 时尚| 马尔康县| 宜兰县| 咸阳市| 上虞市| 乌拉特中旗| 海盐县| 荆门市| 临海市| 垫江县| 麻阳| 唐山市| 武强县| 黄梅县| 耒阳市| 上饶县| 东辽县| 深州市| 观塘区| 桐柏县| 灯塔市| 顺平县| 柘城县| 东海县| 怀集县| 永善县| 行唐县| 鄯善县| 赞皇县| 景谷| 孙吴县| 乌兰浩特市| 夏津县| 镇沅| 平遥县| 汤阴县| 隆子县|