国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 阿巴嘎旗| 吴桥县| 闽清县| 黑河市| 汕头市| 成武县| 武山县| 印江| 马关县| 北京市| 余庆县| 慈溪市| 武夷山市| 北票市| 祁连县| 浑源县| 陆良县| 哈巴河县| 新平| 大冶市| 曲阜市| 英山县| 武穴市| 东乡县| 巩义市| 镶黄旗| 平湖市| 吉木乃县| 巴里| 民丰县| 南漳县| 科技| 宁海县| 徐闻县| 光泽县| 五莲县| 绵阳市| 阿城市| 南投市| 绥芬河市| 双城市|