非商業轉載請註明做譯者、出處,並保留本文的原始連接:http://www.ituring.com.cn/article/118591web
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一直以來緊密推進標準的緣由:業界會藉此得到很大的利益,全部人都想要去實現一個穩定而且你們都能接受的協議。spa
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那裏收到一些關於比光速更快的傳輸報告……只不過,通過進一步調查,這只是一根有缺陷的電纜。:)
這件事有可能嗎?這個問題我只能留給物理學家。與此同時,更加現實的答案是「不可能」。