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

首頁 > 語言 > PHP > 正文

Facebook 的 PHP 性能與擴展性

2024-09-04 11:50:18
字體:
供稿:網(wǎng)友

炙手可熱的 Facebook 是用 PHP 開發(fā)的。隨著一些技術(shù)交流,逐漸能看到 Facebook 技術(shù)人員分享的經(jīng)驗。近期這個 geekSessions 站點上看到 Facebook 的 Lucas Nealan 分享的文檔比較有參考價值。

Cache 為 王

任何一個成功的站點都有一套最合適自己的 Cache 策略。

Facebook_Cache_Level.png

Note:這個層次圖畫的稍微有點問題,不是嚴格從上到下的。

The Alternative PHP Cache , APC

Facebook 平均每個用戶每天要訪問超過 50 個頁面,PHP的頁面載入時間的優(yōu)化就比較重要了。在 PHP Cache 層,F(xiàn)acebook 采用了 APC

Lucas Nealan 的 PPT 舉了一個例子,一個頁面顯示的時間從 4000 多毫秒降到了 100 多 毫秒。在 apc.stat 關(guān)閉的模式下,性能還要更好一些。不過需要重啟動或用apc_clear_cache() 來通知更新。

PHP_APC.png

Memcached 層

APC Cache 的是非用戶相關(guān)的信息,而用戶相關(guān)的數(shù)據(jù) Cache 當(dāng)然是在 Memcached 中。

Facebook 部署了超過 400 臺 Memcached 服務(wù)器,超過 5TB 的數(shù)據(jù)在 Memcached 中。這是當(dāng)前世界上最大的 Memcached 集群了。也給 Memcached 貢獻了不少代碼,包括 UDP 的支持和性能上的提升(性能提升超過 20%)。

程序 Profiling

Facebook 開發(fā)人員大量采用 Callgrind 、APD、 xdebug 、KCachegrind 等工具進行基準性能測試。任何一個 Web 項目,這也是不可或缺,也是比較容易忽略的一環(huán)。所有開發(fā)人員都應(yīng)該具備熟練使用這些工具的能力才好。

補充一下:語言的選擇

為什么 Facebook 選擇 PHP 而不是其他語言? 用Flickr 的 Cal Henderson 這句話就能說明了: "Languages's don't Scale, Architecture Scale"。

從 80-20 的原則看,APC 和 Memcached 是最主要的。在這兩個環(huán)節(jié)上下功夫,受益/開銷比要大于另外幾個環(huán)節(jié)。

(上面的圖是從 Lucas Nealan 的文檔截的,版權(quán)所有是他的)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 朝阳市| 同仁县| 防城港市| 塘沽区| 龙泉市| 达孜县| 山丹县| 都匀市| 惠东县| 思茅市| 闻喜县| 黄山市| 鹤峰县| 色达县| 余庆县| 应城市| 长沙县| 新河县| 彩票| 高州市| 安新县| 裕民县| 安仁县| 杨浦区| 广宗县| 平阳县| 清镇市| 深泽县| 丰城市| 两当县| 阳泉市| 扶风县| 苏尼特左旗| 广德县| 太仆寺旗| 农安县| 泰和县| 塔城市| 勃利县| 柳州市| 邛崃市|