日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

HHVM簡介

系統(tǒng) 2012 0

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

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

有點長的歷史

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

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

在巔峰時期,運行在HipHop上的PHP代碼在性能上是運行在ZEND引擎上的PHP代碼的6倍。然而,在HipHop的第一次迭代版上仍然有幾個缺點:

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

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

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

鑒于這些問題,F(xiàn)acebook公司在2010年早期采取了兩個關(guān)鍵行動。其一便是把HipHop平臺開源了,開源這樣的一個項目是一個偉大的方 式,便于構(gòu)建一個圍繞著這個項目的社區(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é)碼在運行時被JIT(Just-In-Time)編譯器動態(tài)地轉(zhuǎn)換成機器碼。

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

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

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

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

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

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

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

接下來

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

?

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

HHVM簡介


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 宜章县| 张掖市| 玛曲县| 团风县| 德兴市| 邹城市| 赤峰市| 鄂州市| 化德县| 景宁| 富锦市| 商南县| 韶山市| 五莲县| 和硕县| 庆元县| 阆中市| 宣城市| 潜山县| 涪陵区| 三江| 高碑店市| 繁昌县| 新民市| 麦盖提县| 唐海县| 苏尼特左旗| 博野县| 夹江县| 微山县| 枣阳市| 饶平县| 岳池县| 湘阴县| 湘潭市| 灵寿县| 新津县| 宿州市| 锦屏县| 海阳市| 侯马市|