ww国产ww在线观看免_www.日本在线播放_中文字幕一区二区三区四区五区_亚洲专区一区

網(wǎng)至普網(wǎng)絡(luò)
400-080-4418
建站資深品牌

建站資深品牌

專業(yè)網(wǎng)站建設(shè)公司

大型網(wǎng)站建設(shè),高性能的“流水線技術(shù)”網(wǎng)頁(yè)

日期::10/4/2015 7:51:43 AM 瀏覽: 3097

大型網(wǎng)站建設(shè)最關(guān)心的問(wèn)題就是網(wǎng)站速度,網(wǎng)站速度已成為大型網(wǎng)站建設(shè)公司的主要任務(wù)之一。

Facebook的網(wǎng)站速度做為最關(guān)鍵的公司任務(wù)之一。在2009年,我們成功地實(shí)現(xiàn)了Facebook網(wǎng)站速度提升兩倍 。而正是我們的工程師團(tuán)隊(duì)的幾個(gè)關(guān)鍵的創(chuàng)新使它成為可能。在本文中,我將向大家介紹我們的秘密武器之一,我們稱之為BigPipe的偉大底層技術(shù)。

BigPipe是一個(gè)重新設(shè)計(jì)的基礎(chǔ)動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)體系。大體思路是,分解網(wǎng)頁(yè)成叫做Pagelets的小塊,然后通過(guò)Web服務(wù)器和瀏覽器建立管道 并管理他們?cè)诓煌A段的運(yùn)行。這是類似于大多數(shù)現(xiàn)代微處理器的流水線執(zhí)行過(guò)程:多重指令管線通過(guò)不同的處理器執(zhí)行單元,以達(dá)到性能的最佳。雖然 BigPipe是對(duì)現(xiàn)有的服務(wù)網(wǎng)絡(luò)基礎(chǔ)過(guò)程的重新設(shè)計(jì),但它卻不需要改變現(xiàn)有的網(wǎng)絡(luò)瀏覽器或服務(wù)器,它完全使用PHP和JavaScript來(lái)實(shí)現(xiàn)。

動(dòng)機(jī)

為了更好的了解BigPipe,我們需要了解一下現(xiàn)有的動(dòng)態(tài)Web服務(wù)系統(tǒng),它的歷史可以追溯到萬(wàn)維網(wǎng)的初期,但現(xiàn)在與初期相比卻并沒(méi)有多少改變。 現(xiàn)代網(wǎng)站有著遠(yuǎn)遠(yuǎn)高于10年前的動(dòng)態(tài)效果和互動(dòng)性,但傳統(tǒng)的網(wǎng)頁(yè)服務(wù)系統(tǒng)早已無(wú)法跟上當(dāng)今互聯(lián)網(wǎng)速度的要求。在傳統(tǒng)的模式,用戶請(qǐng)求的生命周期如下:

1. 瀏覽器發(fā)送一個(gè)HTTP請(qǐng)求到Web服務(wù)器。
2. Web服務(wù)器解析請(qǐng)求,然后讀取數(shù)據(jù)存儲(chǔ)層,制定一個(gè)HTML文件,并用一個(gè)HTTP響應(yīng)把它發(fā)送到客戶端。
3. HTTP響應(yīng)通過(guò)互聯(lián)網(wǎng)傳送到瀏覽器。
4. 瀏覽器解析Web服務(wù)器的響應(yīng),使用HTML文件構(gòu)建了一個(gè)的DOM樹(shù),并且下載引用的CSS和JavaScript文件。
5. CSS資源下載后,瀏覽器解析它們,并將它們應(yīng)用到DOM樹(shù)。
6. JavaScript資源下載后,瀏覽器解析并執(zhí)行它們。

傳統(tǒng)模式在現(xiàn)代網(wǎng)站中效率是非常低下的,因?yàn)楹芏嘞到y(tǒng)的操作順序,不能互相重疊。一些如延時(shí)加載JavaScript、并行下載等優(yōu)化技術(shù)已被網(wǎng)絡(luò) 社區(qū)廣泛采用,以此來(lái)克服的一些限制。然而,這些優(yōu)化卻很少涉及Web服務(wù)器和瀏覽器的執(zhí)行順序造成的瓶頸。當(dāng)Web服務(wù)器正忙生成一個(gè)頁(yè)面,瀏覽器處于 閑置狀態(tài),浪費(fèi)其周期無(wú)所事事。當(dāng)Web服務(wù)器完成生成頁(yè)面,并將其發(fā)送到瀏覽器,瀏覽器則成為性能瓶頸并且Web服務(wù)器對(duì)其無(wú)從幫助。重疊Web服務(wù)器 的生成時(shí)間與瀏覽器的渲染時(shí)間,我們不僅可以減少最終的時(shí)間延遲,也能使網(wǎng)頁(yè)更早顯示用戶可見(jiàn)區(qū)域給用戶,從而大大減少用戶對(duì)延遲的感知。

Web服務(wù)器的產(chǎn)生時(shí)間和瀏覽器的渲染時(shí)間重疊,是特別有用的,如Facebook這樣內(nèi)容豐富的網(wǎng)站。一個(gè)典型的Facebook的網(wǎng)頁(yè)包含許多 來(lái)源不同的數(shù)據(jù)資料:好友名單,好友動(dòng)態(tài),廣告等。在傳統(tǒng)的網(wǎng)頁(yè)呈現(xiàn)模式的用戶將不得不等到這些查詢數(shù)據(jù)都返回并生成最終文件,然后將其發(fā)送到用戶的電 腦。任何一個(gè)查詢延遲都將拖慢整個(gè)最終文件的生成。

BigPipe如何工作
要利用該Web服務(wù)器和瀏覽器之間的并行性,BigPipe首先分解網(wǎng)頁(yè)成多個(gè)可調(diào)用的Pagelets。正如流水線微處理器劃分一個(gè)指令的生命周期為(如“取指令”,“指令解碼”,“執(zhí)行”,“寫回寄存器”等)多個(gè)階段,BigPipe的頁(yè)面生成過(guò)程分為以下幾個(gè)階段:

1. 請(qǐng)求解析:Web服務(wù)器解析和完整性檢查的HTTP請(qǐng)求。
2. 數(shù)據(jù)獲取:Web服務(wù)器從存儲(chǔ)層獲取數(shù)據(jù)。
3. 標(biāo)記生成:Web服務(wù)器生成的響應(yīng)的HTML標(biāo)記。
4. 網(wǎng)絡(luò)傳輸:響應(yīng)從Web服務(wù)器傳送到瀏覽器。
5. CSS的下載:瀏覽器下載網(wǎng)頁(yè)的CSS的要求。
6. DOM樹(shù)結(jié)構(gòu)和CSS樣式:瀏覽器構(gòu)造的DOM文檔樹(shù),然后應(yīng)用它的CSS規(guī)則。
7. JavaScript中下載:瀏覽器下載網(wǎng)頁(yè)中JavaScript引用的資源。
8. JavaScript執(zhí)行:瀏覽器的網(wǎng)頁(yè)執(zhí)行JavaScript代碼。

前三個(gè)階段執(zhí)行,由Web服務(wù)器,最后四個(gè)階段是由瀏覽器執(zhí)行。每個(gè)Pagelet必須經(jīng)過(guò)所有這些階段順序,但BigPipe在不同的階段使幾個(gè)Pagelets同時(shí)執(zhí)行。


(Facebook主頁(yè)的Pagelets,每個(gè)矩形對(duì)應(yīng)一個(gè)Pagelet。)

上面的圖片使用Facebook主頁(yè)為例子來(lái)說(shuō)明如何將網(wǎng)頁(yè)是分解成Pagelets。該主頁(yè)包括幾個(gè)Pagelets:“作者Pagelet”, “導(dǎo)航Pagelet”,“新聞動(dòng)態(tài)Pagelet”,“請(qǐng)求框Pagelet”,“廣告pagelet”,“朋友推薦”和“聯(lián)系”等他們是相互獨(dú)立的。 當(dāng)“導(dǎo)航Pagelet”顯示給用戶,“新聞動(dòng)態(tài)Pagelet”仍然可以在服務(wù)器上正在生成。

在BigPipe,一個(gè)用戶請(qǐng)求的生命周期是這樣的:在瀏覽器發(fā)送一個(gè)HTTP請(qǐng)求到Web服務(wù)器。在收到的HTTP請(qǐng)求,并在上面進(jìn)行一些全面的 檢查,網(wǎng)站服務(wù)器立即發(fā)回一個(gè)未關(guān)閉的HTML文件,其中包括一個(gè)HTML 標(biāo)簽和標(biāo)簽的開(kāi)始標(biāo)簽。標(biāo)簽包括BigPipe的JavaScript庫(kù)來(lái)解析Pagelet以后收到的答復(fù)。在標(biāo)簽,有一個(gè)模板,它指定了頁(yè)面的邏輯結(jié) 構(gòu)和Pagelets占位符。例如:

渲染后的第一個(gè)反應(yīng)到客戶端,Web服務(wù)器繼續(xù)一個(gè)接一個(gè)生成Pagelets只要一個(gè)Pagelet生成,他將立即刷新到客戶端在一個(gè)JSON編碼的對(duì)象,包括所有的CSS,JavaScript的pagelet,它的HTML內(nèi)容,以及一些元數(shù)據(jù)所需的資源。例如:

在客戶端在收到Pagelet通過(guò)“onPageletArrive”發(fā)出的指令,BigPipe的JavaScript庫(kù)將首先下載它的CSS資 源;在CSS資源被下載完成后,BigPipe將在Pagelet的標(biāo)記HTML顯示它的innerHTML。多個(gè)Pagelets的CSS可在同一時(shí)間 下載,它們可以根據(jù)其各自CSS的下載完成情況來(lái)確認(rèn)顯示順序。在BigPipe中,JavaScript資源的優(yōu)先級(jí)低于CSS和頁(yè)面內(nèi)容。因 此,BigPipe不會(huì)在所有Pagelets顯示出來(lái)之前下載任何Pagelet中的JavaScript。然后,所有Pagelets的 JavaScript異步下載。最后Pagelet的JavaScript初始化代碼根據(jù)其各自的下載完成情況來(lái)確定執(zhí)行順序。

這種高度并行系統(tǒng)的最終結(jié)果是,多個(gè)Pageletsr的不同執(zhí)行階段同時(shí)進(jìn)行。例如,瀏覽器可以正在下載三個(gè)Pagelets CSS的資源,同時(shí)已經(jīng)顯示另一Pagelet內(nèi)容,與此同時(shí),服務(wù)器也在生成新的Pagelet。從用戶的角度來(lái)看,頁(yè)面是逐步呈現(xiàn)的。最開(kāi)始的網(wǎng)頁(yè)內(nèi) 容會(huì)更快的顯示,這大大減少了用戶的對(duì)頁(yè)面延時(shí)的感知。如果您要自己親眼看到區(qū)別,你可以嘗試以下連結(jié): 傳統(tǒng)模式BigPipe。第一個(gè)鏈接是傳統(tǒng)模式單一模式顯示頁(yè)面。第二個(gè)鏈接是BigPipe管道模式的頁(yè)面。如果您的瀏覽器版本比較老,網(wǎng)速也很慢,瀏覽器緩存不佳,哪么兩頁(yè)之間的加截時(shí)間差別將更加明顯。

性能測(cè)試結(jié)果

下圖是傳統(tǒng)模式和BigPipe性能數(shù)據(jù)比較圖,數(shù)據(jù)是75%用戶對(duì)一個(gè)頁(yè)面中最重要的內(nèi)容(例如:新聞動(dòng)態(tài)被認(rèn)為是在Facebook主頁(yè)上最重 要的內(nèi)容)的感知延遲時(shí)間。收集數(shù)據(jù)方式是加載Facebook主頁(yè)50次并且禁用瀏覽器緩存。該圖顯示BigPipe使用戶在大多數(shù)瀏覽器中感受到的延 遲減少了一半。


(Facebook主頁(yè)的延遲時(shí)間對(duì)比)

值得一提的是BigPipe是從微處理器的流水線中得到啟發(fā)。然而,他們的流水線過(guò)程之間存在一些差異。例如,雖然大多數(shù)階段BigPipe只能操 作一次Pagelet,但有時(shí)多個(gè)Pagelets的CSS和JavaScript下載卻可以同時(shí)運(yùn)作,這類似于超標(biāo)量微處理器。BigPipe另一個(gè)重 要區(qū)別是,我們實(shí)現(xiàn)了從并行編程引入的“障礙”概念,所有的Pagelets要完成一個(gè)特定階段,如多個(gè)Pagelet顯示區(qū),它們都可以進(jìn)行進(jìn)一步 JavaScript下載和執(zhí)行。

在Facebook,我們鼓勵(lì)創(chuàng)造性思考。我們不斷的嘗試創(chuàng)新技術(shù),以使我們的網(wǎng)站更快。
作者蔣長(zhǎng)浩目前是Facebook的研究科學(xué)家,他致力于研究使網(wǎng)站更快的各種創(chuàng)新。
標(biāo)簽:
ww国产ww在线观看免_www.日本在线播放_中文字幕一区二区三区四区五区_亚洲专区一区
国产精品国产三级国产aⅴ原创| 黑人巨大精品欧美黑白配亚洲| 亚洲色欲色欲www| 亚洲国产人成综合网站| 国产精品自拍三区| 精品婷婷伊人一区三区三| 国产清纯在线一区二区www| 丝袜国产日韩另类美女| 成人小视频在线| 精品嫩草影院久久| 婷婷综合五月天| 色激情天天射综合网| 国产人成一区二区三区影院| 久久er精品视频| 欧美一级午夜免费电影| 亚洲国产综合人成综合网站| 99re热这里只有精品视频| 久久久久久毛片| 精品一区二区综合| 3d成人h动漫网站入口| 一区二区三区四区国产精品| 成人高清视频免费观看| 久久精品一区二区三区四区| 久久99深爱久久99精品| 日韩欧美激情四射| 日本欧美在线观看| 91精品国产综合久久久久久久| 亚洲愉拍自拍另类高清精品| 91亚洲永久精品| 亚洲少妇中出一区| 日本久久精品电影| 一区二区在线观看免费视频播放| 成+人+亚洲+综合天堂| 国产精品欧美久久久久一区二区 | av影院午夜一区| 久久午夜羞羞影院免费观看| 精品制服美女丁香| 日韩欧美国产一区二区在线播放| 亚洲r级在线视频| 欧美日韩在线一区二区| 亚洲午夜精品一区二区三区他趣| 在线精品视频一区二区三四| 亚洲成人你懂的| 欧美一区二区三区爱爱| 国产最新精品免费| 国产精品天美传媒沈樵| 色婷婷狠狠综合| 午夜精品一区在线观看| 日韩欧美精品在线| 国产精品888| 亚洲私人影院在线观看| 欧美视频一区二区三区| 久久99精品国产麻豆不卡| 欧美激情资源网| 91国偷自产一区二区三区观看 | 一区二区三区国产豹纹内裤在线| 99精品国产99久久久久久白柏| 一区在线观看视频| 欧美日韩亚洲综合一区二区三区| 麻豆91在线播放免费| 欧美国产精品v| 欧美图区在线视频| 国内欧美视频一区二区| 中文字幕中文字幕中文字幕亚洲无线| 一本色道久久加勒比精品| 日本中文字幕不卡| 国产亚洲欧美日韩日本| 在线亚洲人成电影网站色www| 日本一区中文字幕 | 成人免费高清视频| 亚洲国产综合人成综合网站| 日韩午夜av一区| 成人一区二区视频| 五月综合激情婷婷六月色窝| 国产日韩在线不卡| 欧美人妖巨大在线| 国产精品77777| 午夜精品123| 中文字幕一区二区三区在线不卡| 91精品国产综合久久精品麻豆| 成人久久久精品乱码一区二区三区| 午夜欧美在线一二页| 国产精品美女视频| 欧美成人乱码一区二区三区| 99久久婷婷国产精品综合| 开心九九激情九九欧美日韩精美视频电影| 中文字幕一区二区在线播放| 日韩一区二区三区电影在线观看 | 欧美一区永久视频免费观看| www.在线欧美| 激情另类小说区图片区视频区| 一区二区三区久久| 国产精品视频看| 久久在线观看免费| 欧美一区二区三区免费观看视频 | 国产精品一二三区在线| 亚洲v中文字幕| 亚洲日本中文字幕区| 久久久精品天堂| 精品剧情v国产在线观看在线| 欧美探花视频资源| 色女孩综合影院| 91在线你懂得| a级高清视频欧美日韩| 国产乱国产乱300精品| 免费在线成人网| 丝袜美腿亚洲色图| 偷拍一区二区三区| 午夜精品一区二区三区电影天堂| 一区二区三区中文字幕精品精品| 国产精品不卡在线| 国产精品国模大尺度视频| 久久精品亚洲国产奇米99| 日韩免费看网站| 777精品伊人久久久久大香线蕉| 欧美日韩亚洲综合在线| 欧美性猛交xxxxxx富婆| 欧美日韩综合一区| 欧美色精品天天在线观看视频| 欧美伊人久久久久久久久影院| 91久久精品一区二区三| 在线亚洲人成电影网站色www| 一本色道久久加勒比精品 | 亚洲精品一区二区三区在线观看| 日韩午夜在线观看视频| 91精品国产综合久久精品麻豆| 欧美日韩三级在线| 欧美日韩精品一区二区| 制服丝袜亚洲色图| 欧美成人福利视频| 国产亚洲综合在线| 国产精品久99| 亚洲一区二区三区免费视频| 亚洲国产中文字幕在线视频综合| 亚洲va天堂va国产va久| 美女视频一区二区| 高清av一区二区| 色哟哟国产精品| 欧美日韩精品专区| 26uuu亚洲婷婷狠狠天堂| 日本一区二区在线不卡| 亚洲同性同志一二三专区| 亚洲三级久久久| 婷婷综合久久一区二区三区| 久久se这里有精品| hitomi一区二区三区精品| 在线看国产日韩| 日韩视频免费观看高清在线视频| 欧美精品一区二区三区在线播放| 国产精品美女久久久久久2018| 一区二区三区四区精品在线视频 | 精品国产凹凸成av人导航| 国产精品区一区二区三| 亚洲午夜精品一区二区三区他趣| 日韩中文字幕区一区有砖一区| 激情深爱一区二区| 91美女视频网站| 日韩一级高清毛片| 国产精品激情偷乱一区二区∴| 亚洲成av人片一区二区三区| 国产盗摄视频一区二区三区| 欧美中文字幕一区| 久久―日本道色综合久久| 亚洲激情五月婷婷| 九九热在线视频观看这里只有精品| 成人免费视频app| 欧美精品久久久久久久多人混战| 亚洲精品一区二区三区在线观看 | 91精品免费观看| 国产精品国产三级国产普通话蜜臀 | 欧美午夜不卡视频| 日本一区二区免费在线| 亚洲专区一二三| 国产福利91精品| 欧美顶级少妇做爰| 一区在线观看免费| 国产主播一区二区| 欧美视频一区二区三区四区| 国产蜜臀av在线一区二区三区| 日韩影院免费视频| 色婷婷精品久久二区二区蜜臂av| 精品第一国产综合精品aⅴ| 亚洲自拍偷拍综合| 高清国产一区二区三区| 日韩欧美国产一二三区| 亚洲国产精品久久不卡毛片| proumb性欧美在线观看| 久久亚区不卡日本| 日本亚洲视频在线| 一本大道久久精品懂色aⅴ| 久久久久久久精| 久久精品国产澳门| 欧美日韩成人一区| 亚洲免费在线播放| www.日韩大片| 欧美韩国一区二区| 国产福利91精品| 精品福利视频一区二区三区| 蜜桃久久久久久久| 制服丝袜激情欧洲亚洲|