Facebook 首頁都使用了哪些技術提高訪問速度?

顯而易見的有:RequireJS、BigPipe;除此以外還有哪些?這些都是怎麼使用的呢?


題主居然問我404是用什麼手段加快訪問速度?這還不簡單!不要放圖片只寫404 not found不就完了


這個技術,那個技術,

好奇為什麼還是這麼丑。


bigpipe技術,載入速度比較快。有不少用戶在看薦提到了BigPipe原理:

根據頁面位置不同,將整個頁面分為不同的pagelet,將眾多pagelet的載入過程像流水線一樣分布在瀏覽器和伺服器上,這實現了伺服器和瀏覽器的並行化。

BigPipe 中,用戶提出頁面訪問請求後,頁面的完整載入流程如下:

Request parsing:伺服器解析和檢查http request

Datafetching:伺服器從存儲層獲取數據

Markup generation:伺服器生成html 標記

Network transport : 網路傳輸response

CSS downloading:瀏覽器下載CSS

DOM tree construction and CSS styling:瀏覽器生成DOM 樹,並且使用CSS

JavaScript downloading: 瀏覽器下載頁面引用的JS 文件

JavaScript execution: 瀏覽器執行頁面JS代碼

這個8 個流程幾乎與上文中提到現有的模式沒有區別,但這只是一個pagelet 的完整流程,而多個pagelet 的不同操作階段就可以像流水線一樣進行執行了。流水線方式降低了頁面整體的載入時間,而且,通過讓一部分頁面先顯示,讓用戶感覺頁面載入的更快了。


koko775 comments on Facebook releases HHVM, 60 percent faster than its current PHP interpreter and uses 90 percent less memory.

1. C++ 後台

2. 99.9% Key 命中率

3. 前後端結合的API 返回 (有點反best practice 的感覺)

4. Bigtable 式儲存, 注重atomic call, 使用app server 過濾而不使用數據庫

5. Memcache 第四點的call

6. libphutil/utils.php at master · phacility/libphutil · GitHub 高效率的數列函數(然沒甚麼關係

7. HHVM


推薦閱讀:

怎麼讓input元素的顯示值和value值不一樣?
如果個人技能與如圖所示的技能差不多,可以找到一份多少薪水的工作?
贊同數超過10k再點贊會變成NaN?
到底什麼是前端、後端、後台啊?

TAG:Facebook | 前端開發 | JavaScript | 網頁優化 | 前端架構 |