[技術腦洞] 如果把14億中國人拉到一個微信群裡技術上能實現嗎?
本文由騰訊官方知乎賬號釋出和分享,原文知乎標題:“把 14 億中國人民都拉到一個微信群裡在技術上能實現嗎?”。
1、引言
知乎上有一個非常熱門的問題: “把 13 億中國人民都拉到一個微信群裡在技術上能實現嗎?”(見下圖)

聽到這個問題,全廠的人都炸了。要知道一個微信群最多隻能有500人啊,QQ群也只有2000而已。當你有機會加入一個2000人QQ群的時候,你就已經感受到“資訊爆炸”的可怕……
13億人的微信群?Are you sure?

然鵝,鵝廠的工程師居然有人跳出來認認真真地做了回答。喏,就是下面這位開發小哥哥,他給出了一個知乎萬讚的回答,請好好欣賞他的靈魂作畫!

先說結論: 也許可以實現,但你會什麼都看不見。

學習交流:
- 即時通訊開發交流3群:185926912[推薦]
- 移動端IM開發入門文章:《 ofollow,noindex">新手入門一篇就夠:從零開發移動端IM 》
(本文同步釋出於: http://www.52im.net/thread-2017-1-1.html )
2、作為理科男,我們來認真的分析一下
根據2017年《微信資料報告》的公開資料: 2017年9月, 微信日均登陸9.02億人,日均傳送訊息380億次 。
► 這意味著平均每人每天傳送資訊42條,如果全國人民(對了,現在全國人口已經接近14億)在同一個群裡說話,這個群每天出現的資訊就高達:

► 這麼多資訊僅僅是勻速傳送的話,考慮到大家的睡眠,睡覺的8小時不算,那麼手機裡每秒要接收的資訊就是:

哇塞,每秒超過100萬條啊!目前主頻最高的手機CPU之一, 高通驍龍845有2.8GHz的處理能力 ,一共是8核。
► 如不計算安卓系統、顯示重新整理、網路IO等CPU操作的話,每條資訊能分配到的計算能力是:

這是什麼概念?全球第一款微處理器是1971年英特爾推出的 Intel 4004 ,這個老古董的主頻也有108KHz啊。所以21.9KHz就是啥也幹不了。
幸好IT界有個摩爾定律:每18個月CPU效能就能翻倍(或者價錢是一半)。雖然現有科技已經很難讓主頻提升(某牙膏廠拼命擠也只有5Ghz)。
► 但假設我們使用了黑科技提升主頻。等到了 2025摩爾定律失效 時,我們的手機CPU主頻應該達到:

► 看起來不錯嘛,不過每條訊息能得到的計算能力將達到:

呵呵,依然沒有達到Intel 4004的水平,所以結果就是你等了7年,還是進不了這個全國群搶一個紅包。

好吧,咱們讓手機接入一個給力點的電腦, 比如說曾經全球超算第一名的太湖之光[參考5],用它的1千萬個CPU核心來幫忙處理這個宇宙第一大微信群。算力的問題算是有了著落。
我們假設平均每條訊息有10個漢字,這大概相當於30 byte,算上應用層會加上一定的控制字元,再加上TCP/IP網路層的資料消耗大概是74 byte,取個整,平均每條訊息有100 byte。
► 而每個byte 相當於8個bit,所以這時每秒需要的網路頻寬大約是:

這時千萬不要有人發紅包,否則需要的頻寬就更大了。
理論上, 4G" target="_blank" rel="nofollow,noindex">4G網路能支援1000Mbps ,但別忘了,是全國人民在同一個群裡,而你周圍的人也需要同樣的頻寬,這使得你附近的基站不堪重負,陷入癱瘓。
為了避免網路癱瘓導致你搶不到紅包或者看群訊息,你需要搬到一個周圍沒有人的基站,比如放暑假了全校只有你還沒回家的時候。

► 不過運營商的日子就不好過了,因為這一秒全國上下的流量就達到了驚人的:

這相當於 2017 4月份的全國移動資料總流量的65.7% ,同時意味著每18秒就能用完全國一年的流量 。運營商瑟瑟發抖.gif
如果把1.146Ebit資料用2TByte 3.5英寸硬碟(20mm高)裝起來,然後疊起來,有1433.25m,相比之下,全球最高樓——迪拜的哈利法塔只有區區828m。

當然,如果確實有需要,我相信電信運營商們肯定砸下重金為你建設全世界最大的寬頻網路。
不過,接下來該花錢的就不是運營商——而是騰訊了。
為了處理這1.146Ebps 的流量, 騰訊需要準備11466萬套交換機和伺服器。
► 目前一臺大廠4口萬兆交換機售價大約是4000元,一臺便宜帶萬兆口的伺服器則大概需要10000元,這兩項加起來的費用是:

呃,僅僅這兩項就相當於 深圳2014年全年的GDP 。這裡還不包括網線、電線、伺服器機架、機房託管、電費、執行支出……
► 況且,這麼多裝置的存放也是個問題。一臺帶萬兆(10Gbps)口的2U伺服器有88.9mm高,這樣疊起來就有:

這差不多是中國到美國的飛機航線距離啊,用來修鐵路也是夠夠的了。

好了,有了這麼多裝置加持,這下你終於可以愉快地進了群。
但你驚訝地發現,螢幕上除了白色,什麼都沒有——這是因為你的眼睛沒辦法接收這麼快的資料!
人眼的視覺暫留時間是100-400毫秒 ,而我們這個群每秒鐘就要顯示102萬條資訊,每條訊息停留的時間只有大概0.0001毫秒。相比之下,電影、電視都有41毫秒。
因此你還沒來得及看清訊息,它就已經消失了,最後只留下一團白色的色塊在螢幕的正中央。

我的手機著火了,能不能來一下……
附錄:有關QQ、微信的技術故事
《 技術往事:微信估值已超5千億,雷軍曾有機會收編張小龍及其Foxmail 》
《 2017微信資料報告:日活躍使用者達9億、日發訊息380億條 》
《 技術往事:創業初期的騰訊——16年前的冬天,誰動了馬化騰的程式碼 》
《 技術往事:史上最全QQ圖示變遷過程,追尋IM巨人的演進歷史 》
《 開發往事:深度講述2010到2015,微信一路風雨的背後 》
《 開發往事:記錄微信3.0版背後的故事(距微信1.0釋出9個月時) 》
《 為什麼說即時通訊社交APP創業就是一個坑? 》
《 微信七年回顧:歷經多少質疑和差評,才配擁有今天的強大 》
《 前創始團隊成員分享:盤點微信的前世今生——微信成功的必然和偶然 》
《 即時通訊創業必讀:解密微信的產品定位、創新思維、設計法則等 》
《 [技術腦洞] 如果把14億中國人拉到一個微信群裡技術上能實現嗎? 》
>> 更多同類文章 ……
(本文同步釋出於: http://www.52im.net/thread-2017-1-1.html )