Google效能專家Ilya Grigorik:速度是我們的核心信條

ituring發表於2014-08-09

  Ilya Grigorik 是谷歌“Web加速”(Make The Web Fast)團隊的效能工程師、開發大使。他每天的主要工作就是琢磨怎麼讓Web應用速度更快,總結並推廣能夠提升應用效能的最佳實踐。在加入Google之前,他創立了一家研究實時使用者行為分析的公司PostRank。PostRank成立4年後被Google Analytics團隊收購。Ilya Grigorik著有《Web效能權威指南》,另外,他還在Udacity上教授一門公開課:The Critical Rendering Path

  你是如何變成一個開發者的?你又是如何成為一位web效能工程師的?

我是先變成“搞web的人”然後才成為一位開發者的,也就是說,建造和設計網頁把我一點點帶到了這個領域。首先,只是學學HTML,CSS,再加上一點JavaScript,隨著時間累積,我開始越來越深入地學習web相關知識,然後我又逐漸開始學習電腦科學。而剩下的,就像他們所說,已經成為了歷史。

效能是一直以來讓我著迷的東西,我想一部分原因在於要想談論效能,你必須要建立一種敏銳的直覺,要知道所有的東西是如何在一起工作的——我不喜歡黑盒子,當我能用簡單的詞語解釋這一切是如何發生的時候,我感覺到深深的滿足感。

  你寫《Web效能權威指南》的動力和原因是什麼?

當我學習web效能的時候我曾希望能有這樣一本書。關於網路棧 (TCP, HTTP, 等等)的具體部件已經有很多書了,但是我無法找到一本能把所有這些部分拼合在一起,並且以討論如何交付快速瀏覽器體驗為背景的書:TCP是如何影響頁面效能的,HTTP 1.x 的侷限性在哪裡,我們為什麼需要HTTP 2.x,不同瀏覽器API (XHR, EventSource, WebSocket, 等等)之間有什麼不同,諸如此類的問題。

另外,我知道在我寫作的時候我能學習得最好,因為寫作迫使我梳理思緒。在HPBN上工作的經歷讓我弄明白了很多我曾經忽視的重要細節,我可以重新學習我自認為已經理解(實際上並沒有)的課題,並且學習很多新材料。我希望對於任何拿起這本書的人都是這樣。

  Google是HTTP2.0的積極倡導著。你認為部署HTTP 2.0的主要困難是什麼?

隨著更多的服務商和供應商接受了這個標準,部署HTTP/2每天都會變得更加簡單。今天最大的障礙就剩下升級老舊基礎設施,讓它們可以接受新的協議,但是這個問題終將會被解決。這也是IETF一直以來緊密推動標準的原因:業界會藉此獲得很大的利益,所有人都想要去實現一個穩定並且大家都能接受的協議。

  WebRTC什麼時候才能在移動裝置上成熟地應用?Google計劃在未來如何應用這個技術?

1B+裝置上已經啟用了WebRTC!我不能透露各種Google產品的具體計劃,但是你肯定可以想象很多團隊都在尋找能夠利用這些新能力的辦法。這就是說,WebRTC更讓人著迷的方面並不僅僅是Google計劃如何使用它,而是日常開發人員現在將如何構建和部署那些有條件出現的應用!你現在只需要用瀏覽器裡的API來建立一個P2P會話就可以交換音訊、視訊,以及資料。這是web平臺的重要一步!

  Chrome並不是最快的瀏覽器,但是卻有最大的市場佔有率,這是為什麼?這意味著速度並不是最重要的因素嗎?

確實,Chrome並不是最快的,這是個bug,如果你有具體的例子,請告知我們——在crbug.com上提出bug!速度是Chrome的核心信條。

  Google依靠Web,但是從某些角度來說Web也很脆弱,比如,DNS汙染。Google現在在中國已經基本消失了。對於這樣的情況Google會有什麼對策嗎?

我無法評論Google在中國的表現,但是可以肯定的是,我們有大型專業的安全團隊和基礎架構團隊,他們唯一的工作和責任就是要確保我們的服務可以有效正確地執行。更廣義地說,我認為Google的每個人對於任何能讓web變得更加可靠和安全的機會都充滿了興趣——Vint Cerf是我們的“首席網際網路大使”,他在很多方面都是帶頭衝鋒的!

  在開發移動web應用的時候,不同平臺不同版本的瀏覽器表現千差萬別,再加上要考慮各種相容方案,必然會極大影響到效能。這是否意味著原生應用仍然是主要的手段?

Web和原生平臺都一直在進化:新的API和特性,bugfixes,偶發性迴歸,諸如此類。在此之上,我們還有各種各樣的硬體,從低端單核手機到最新的有大量RAM和GPU頻寬的多核裝置。所以,無論你是要構造原生還是web應用,都需要依賴於這些裝置。要想構建一個效能糟糕的本地應用,和構建一個糟糕的web應用一樣簡單。

  如今Web發展的瓶頸在哪?未來又將如何?

一直以來,我對最新最好的智慧電話的硬體引數和能力都感到驚喜。現在很多最新裝置所攜的計算能力要高於我幾年前使用的膝上型電腦!所以,這同時也激發和挑戰了軟體的新能力:新的API,不同的處理管道,等等。因此,我們需要重新思考如何構建瀏覽器架構的設想,應該把什麼樣的能力顯示給開發者。換句話說,並不是非此即彼,而是兩者互相驅動,並且在未來很長一段時間內都將如此。

  歷史上出現了很多重要的網路應用,電子郵件,新聞組,全球資訊網。Web似乎有著經久不衰的魅力。你能想象未來會出現一個具有和web同等影響力的網路應用嗎?

預測未來是一樁危險的買賣!我能預測嗎?我也想!全球資訊網很棒,要是未來能出現一個更棒的東西擠掉web,我想很多人都願意做這樣有趣的思維試驗:它是什麼樣的,它能做什麼事,它是如何工作的,等等。網路已被證明是很有彈性的,我相信仍然有很多東西有待我們發現,在架構內仍然有很多東西可以提高……能成為這個時代的開發者感覺真的不錯!

  有一部叫做《矽谷》的熱播美劇,故事的主人公創造了一種叫做pied piper的演算法,這種演算法可以減少資料傳輸時間,你認為這在現實中是可能的嗎?

必須得承認,我並沒有看這部劇,對於"pied piper"也不太熟悉。即便如此,幾年前我們確實從CERN那裡收到一些關於比光速更快的傳輸報告……只不過,經過進一步調查,這只是一根有缺陷的電纜。:)

這件事有可能嗎?這個問題我只能留給物理學家。與此同時,更加現實的答案是“不可能”。

相關文章