Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro Web Performance

Avatar for chph chph
October 16, 2015

Intro Web Performance

Avatar for chph

chph

October 16, 2015
Tweet

More Decks by chph

Other Decks in Technology

Transcript

  1. 不容忽視的網站效能 • Amazon: 每次加快 100ms 速度,營收成⻑⾧長 1% • AOL 發現網站瀏覽速度在前

    10% 的訪客,相 較於末 10% 會看更多⾴頁⾯面 IUUQTXXXqJDLSDPNQIPUPTKFUPX
  2. 不容忽視的網站效能 (續) • Yahoo: 每加快 400ms 速度,流量成⻑⾧長 9% • Mozilla:

    網站載⼊入速度加快 2.2 秒使每年 Firefox 下載數成⻑⾧長 6000 萬次 IUUQTXXXqJDLSDPNQIPUPTKFUPX
  3. Chrome Dev Tools - Network • TFFB - Time to

    First Byte • 瀏覽器等候收到第⼀一個 Byte 的時間 dT NT
  4. 伺服器端常⾒見調校⽅方式 • 避免或減少存取資料庫 • 使⽤用後端程式語⾔言的快取機制 • PHP - OPCache (避免重新剖析

    PHP 原始碼) • NodeJS - function 限制在 < 600 字元 • 包含註解在內! (妖術?) • 勤勞升級後端程式語⾔言版本 • PHP 7 效能在 WordPress 等軟體⽐比 PHP 5.5 提昇 100%
  5. NodeJS : A quick optimization advice • https://top.fse.guru/nodejs-a-quick-optimization- advice-7353b820c92e •

    node --max_inlined_source_size=600 example.js • 左圖案例效能增進 50%
  6. 圖⽚片壓縮⼯工具 (無損壓縮) • ImageOptim (Mac) • https://github.com/pornel/ImageOptim • pngquant (Command-Line

    Interface) • https://github.com/pornel/pngquant • ⽐比 PNG 原圖瘦⾝身 70%
  7. PageSpeed Insights 最佳化圖⽚片
 (續上⾴頁) • 以不失真⽅方式壓縮 http://front.pixfs.net/css/mobile/styles/images/zoom_out.png 可將檔案⼤大⼩小減少 2.7KB (減少幅度為

    87%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/…css/mobile/styles/images/pixnet-logo.png 可將檔案⼤大⼩小減少 1.3KB (減少幅度為 31%)。 • 以不失真⽅方式壓縮 http://s.pixfs.net/blog/images/choc/avatar-neutral.png 可將檔案⼤大⼩小減少 1.2KB (減少幅度為 48%)。 • 以不失真⽅方式壓縮 http://s2.pimg.tw/…isko/0/0/zoomcrop/90x90.png?v=1441130749 可將檔案⼤大⼩小減少 1.2KB (減少幅度為 14%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/…bile/images/icons/openid-google-icon.png 可將檔案⼤大⼩小減少 1.1KB (減少幅度為 49%)。 • 以不失真⽅方式壓縮 http://r-ec.bstatic.com/…c730e41524bfc0c2306d6d4a5c4a8a315185.png 可將檔案⼤大⼩小減少 977B (減少幅度為 28%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/…bile/images/icons/openid-pixnet-icon.png 可將檔案⼤大⼩小減少 967B (減少幅度為 69%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/css/mobile/styles/images/zoom_in.png 可將檔案⼤大⼩小減少 946B (減少幅度為 70%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/css/mobile/styles/images/arr-all.png 可將檔案⼤大⼩小減少 868B (減少幅度為 85%)。 • 以不失真⽅方式壓縮 http://s.pixfs.net/mobile/images/icons/comment_add_B.png 可將檔案⼤大⼩小減少 865B (減少幅度為 71%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/css/mobile/styles/images/icon-up.png 可將檔案⼤大⼩小減少 849B (減少幅度為 38%)。 • 以不失真⽅方式壓縮 https://googleads.g.doubleclick.net/simgad/7832239255609163457 可將檔案⼤大⼩小減少 846B (減少幅度為 5%)。 • 以不失真⽅方式壓縮 http://front.pixfs.net/css/mobile/styles/images/point.png 可將檔案⼤大⼩小減少 844B (減少幅度為 91%)。
  8. PageSpeed Insights 最佳化圖⽚片 • 使⽤用 pngquant 批次壓縮 PNG icon •

    $ cd mobile-asset-images • $ pngquant --quality=50-60 *.png --ext=.png --force
  9. PageSpeed Insights 
 清除禁⽌止轉譯 JavaScript & CSS • 22 項禁⽌止轉譯指令碼資源和

    5 項禁⽌止轉譯 CSS 資源, 對網⾴頁的轉譯作業造成延遲。
  10. PageSpeed Insights 
 清除禁⽌止轉譯 JavaScript & CSS • 盡量把外部 <script>

    搬到⾴頁⾯面底部 (</body> 前) • 放在 <head> 裡的 <script> ,如果沒有相依性,可 以加上 async 屬性避免 block browser render • 例如 Google Adsense (adsbygoogle.js)
  11. PageSpeed Insights 
 清除禁⽌止轉譯 JavaScript & CSS • 1 項禁⽌止轉譯指令碼資源和

    4 項禁⽌止轉譯 CSS 資源,對 網⾴頁的轉譯作業造成延遲。 • ⾏行動網⾴頁上升⾄至 69 / 100 速度 • 持續努⼒力試著搬⾛走 jQuery
  12. References • 15 ways to speed up your site, http://www.slideshare.net/wrttnwrd/15-ways-to-speed-up-your-site

    • Modern Performance Best Practices, https://speakerdeck.com/dustinwhittle/modern-performance-best- practices • Google: 打造優異的網路體驗 - 效能最佳化 https://developers.google.com/web/fundamentals/performance/ • Performance RAIL’s by Ilya Grigorik, https://docs.google.com/presentation/d/ 13AJe2Ip4etqA8qylrva7bEgu1_hAvsq_VQiVOAxwdcI/present? • Delivering the goods in under 1000ms by Paul Irish, https://docs.google.com/presentation/d/ 1MtDBNTH1g7CZzhwlJ1raEJagA8qM3uoV7ta6i66bO2M/present? • Oh really, why is that? by Ilya Grigorik, https://www.igvita.com/slides/2012/web-performance-for-the- curious/ • #perfmatters - Performance Tooling by Paul Irish https://docs.google.com/presentation/d/ 19R_E5B__kdE55L1bTpS6IFKbYbHq-PQKKky4do5Yc6A/edit?pli=1#slide=id.g105c64d69_170