日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Facebook提升性能的一大法宝:HipHop

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Facebook提升性能的一大法宝:HipHop 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前我們談過facebook的架構,今天在csdn上看到一篇文章,講述了hiphop在facebook的重要作用,原文鏈接,轉載原文如下:

Facebook神秘的PHP項目HipHop for PHP終于揭開面紗。這個項目由一個PHP到C++的轉換程序,一個重新實現的PHP運行庫,和許多常用PHP擴展的重寫版本構成,目的是旨在加速和優化PHP。

用Facebook官方博客(無法直接訪問)上項目負責人趙海平(北大1987屆遺傳與分子生物專業,普林斯頓計算機科學博士)的話說,HipHop項目對Facebook影響巨大。它目前已經支撐了Facebook 90%的Web流量。由于HipHop,Facebook Web服務器上的CPU使用平均減少了50%,從而大大減少了服務器的需求。為了讓這一改進也惠及社區,他們決定將之開源,希望能夠進一步幫助提高更多大型復雜PHP網站的可伸縮性。

PHP和Facebook的問題

眾所周知,Facebook的前端主要是用PHP寫的。趙海平說,過去六年Facebook從PHP語言的進展上獲益良多。PHP非常簡單,易學易用,好讀好調試,因此新工程師成長很快,有利地促進了Facebook的更快的創新。

PHP是一種腳本語言,其好處是編程效率高,能夠支持產品的快速迭代。但是與傳統的編譯語言相比,腳本語言的CPU和內存使用效率不好。隨著 Ajax技術的廣泛采用,加上SNS對動態要求較高,這些缺點更顯得突出。對于每月超過4000億次PV的Facebook來說,如何實現擴展,尤其具有挑戰性。

常見的辦法是直接用C++重寫PHP應用中比較復雜的部分,作為PHP擴展。實際上,PHP就轉變為一種膠水語言,連接前端HTML和C++應用邏輯。從技術角度講這也沒有問題,但是增加了技能需求,能夠在整個應用上工作的工程師數量就大大減少了。學習C++只是編寫PHP擴展的第一步,接下來還要理解Zend API。由于Facebook的工程團隊較小,每個工程師要支持100萬以上的用戶。有些代碼不是團隊里每個人都能看懂,這對于Facebook是無法接受的。

Facebook網站本身的可伸縮性更具挑戰性,因為幾乎每次頁面瀏覽都是有個性化體驗的登錄用戶發起。瀏覽主頁 時,系統需要查詢所有朋友、朋友最重要的狀態更新、 根據隱私設置篩選結果,然后還要顯示評論、照片等等動態,這一切都需要在一秒內完 成。

自2007年以來,Facebook曾寫過幾種不同辦法解決這些問題。其中包括用另 一種語言重寫Facebook,但是由于開發的復雜性和速度等原因,未能實現。他們還重寫了PHP的核心部分Zend引擎,并提交給了PHP項目,但最終還是沒有獲得所需的性能。最后,他們選擇了HipHop,終于得償所愿。

有了HipHop,工程師可以編寫代碼,用PHP編寫組合最后頁面的邏輯,并能夠繼續快速迭代,同時后端服務使用C++, Erlang, Java, Py thon編寫,提供新聞提要、搜索、聊天和其他核心功能。

HipHop開發故事

趙海平透露,項目最初是來自幾年前Facebook公司一次Hackathon活動(員工在一個晚上自由發揮,實驗新的想法),他手工將PHP轉換為C++代碼,雖然語法上很類似,但是無論是CPU還是內存使用,轉換后的C++代碼都大大優于PHP。于是他想,如果構建一個系統,編程實現轉換,會怎么樣呢?

在此之前,已經有了不少改善PHP性能的方法。Zend引擎在運行時轉換PHP源代碼為運行在Zend虛擬機上的opcode。開源項目APC和 eAccelerator將輸出緩存,為大多數PHP網站所使用。此外,還有Zend Server這樣的商業產品,通過opcode優化和緩存,提高PHP速度。趙海平選擇了另一條道路,將PHP直接轉為C++,然后再變成本地機器碼。當然,有許多開源項目也是同樣的思路,Roadsend和phc編譯為C,Quercus編譯為Java,而Phalanger編譯為.NET。

Hackathon之后8個月,趙海平拿出了原型,足以說明這條路可以走通,編譯后的代碼的確更快。不久,Iain Proctor和Minghui Yang加入進來。接下來又開發了10個月,在生產服務器上測試了6個月。然后正式上線部署,6個月之后,Facebook 90%以上的Web流量都使用了HipHop。

按趙海平的說法,憑借HipHop,Facebook Web服務器上的CPU使用平均減少了50%,從而大大減少了服務器的需求。項目對Facebook影響巨大。為了讓這一改進也惠及社區,他們決定將之開源,希望能夠進一步幫助提高更多大型復雜PHP網站的可伸縮性。

HipHop的原理

HipHop將PHP代碼轉換為高度優化的C++代碼,然后再用g++編譯器編譯。它可以保持語義等效地執行源代碼,但為了提高性能,犧牲了一些很少用到的特性,比如eval()。

HipHop開發中的主要困難在于,在PHP和C++這兩種很不一樣的語言之間怎么實現轉換。雖然PHP也可以寫一些很巧妙的動態特性,但是大多數 PHP代碼還是非常簡單的。if (...) {...} else {..} 比foo($x) { include $x; } 肯定更常見。這為性能提高提供了機會。HipHop生成的代碼盡可能地使用函數和變量的靜態綁定。同時,還使用類型推演來選出變量最可能對應的某個類型,從而節省內存。

轉換過程分三步:

1. 靜態分析。收集聲明關系和依賴關系等信息。

2. 類型推演。選擇最合適的類型,是C++的標量?還是String, Array, classes, Object或者Variant。

3. 代碼生成。大部分直接將PHP語句和表達式對應為C++的語句和表達式。

在開發過程中,還有一個副產品:HPHPi,是一個實驗性的解釋器。通過它,不編譯PHP源代碼也可以運行。它已經用于HipHop自身的調試中。

HipHop在保持了PHP優點的同時,也兼得了C++的性能優勢。項目總共有30萬行代碼,5000多個單元測試。所有這些都將以PHP開源許可證形式發布到GitHub。

更多信息,可以申請加入HipHop的郵件列表:

http://groups.google.com/group/hiphop-php-dev

總結

以上是生活随笔為你收集整理的Facebook提升性能的一大法宝:HipHop的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久一在线视频 | 久久精品国产精品亚洲色婷婷 | 日韩精品视频在线观看网站 | 欧美黄色a视频 | 成人免费无遮挡无码黄漫视频 | 夜夜骑夜夜 | 超碰人人超碰 | 亚洲片国产一区一级在线观看 | www婷婷av久久久影片 | 日韩精品久久久久久久酒店 | 黄色av片三级三级三级免费看 | 中国黄色三级视频 | 午夜小福利 | 免费看91视频 | 中国成熟妇女毛茸茸 | 少妇媚药按摩中文字幕 | 久久久精品免费观看 | 在线观看视频中文字幕 | 亚洲免费观看高清在线观看 | 污的视频在线观看 | 一区二区手机在线 | 亚洲成色www久久网站 | 在线免费av网站 | 另类激情亚洲 | 成人欧美一级特黄 | 美梦视频大全在线观看高清 | 欧美精品一区二区三区四区 | 无码国产69精品久久久久同性 | 2021亚洲天堂 | 日本五十路女优 | 欧美粗又大 | 日b视频在线观看 | 少妇一级1淫片 | 免费视频毛片 | avwww| 国内自拍网站 | 亚洲无线观看 | 久久综合影视 | 久久久中文字幕 | 欧美日韩一 | 国产91欧美 | 成年人免费在线视频 | 色欲久久久天天天综合网 | 一区二区激情视频 | 国产三级全黄裸体 | 熟女熟妇伦久久影院毛片一区二区 | 国产精品入口麻豆九色 | 私人网站 | www视频在线观看 | 久久免费av | 欧美视频一区二区在线观看 | 亚洲综合大片69999 | 免费91网站 | 污污网站在线播放 | 韩国三级中文字幕hd浴缸戏 | 性一交一黄一片 | 国产成年人视频 | 欧美区一区 | 操欧美老女人 | 亚洲精品乱码久久久久 | 欧美日韩在线视频一区 | 亚洲熟妇av一区二区三区漫画 | 污污网站在线观看 | 国产福利资源 | 操xxxx| 美女裸体跪姿扒开屁股无内裤 | 亚洲国产清纯 | 亚洲中文字幕一区二区在线观看 | 亚洲20p| 极品美女高潮出白浆 | 中文字幕精品一区久久久久 | 肉色丝袜小早川怜子av | 欧美精品一卡二卡 | 国产不卡毛片 | 亚洲激情在线观看 | 欧亚av在线| julia一区二区三区中文字幕 | 毛片麻豆 | 一级黄色免费网站 | 欧美在线综合 | 亚洲jizzjizz | 国产不雅视频 | 少妇福利视频 | 99re6这里有精品热视频 | 精品人妻久久久久久888不卡 | 神马久久影院 | 国产精品视频在线免费观看 | 色婷婷午夜 | 一本大道久久 | 日韩123区 | 中文字幕一区二区三 | 热久久在线 | 日韩av在线播放网址 | 青青青手机视频 | 中文一区在线 | 久久精品无码一区二区三区毛片 | 激情另类视频 | 亚洲一级片 | 九九小视频 |