web性能優化——簡介


簡介

性能優化的第一准則:加緩存。幾乎絕大部分優化都圍繞這個來進行的。讓用戶最快的看到結果。

性能優化的第二准則:最小原則。絕不提供多余的信息。比如,靜態資源(圖片、css、js)壓縮,圖片的滾動加載,異步請求,http請求合並等。

性能優化的第三准則:分布、集群。當前,這個的前提是已經把基本優化都做完了,才考慮這個方面。

思路

性能優化的過程是一個鏈條,任何一個節點上都要優化,否則都會出問題,優化也就失敗了。

每個節點上都包含這幾個方面

  • 定位。定位這個節點是否有存在性能問題。
  • 監控。監控這個節點的性能問題。
  • 解決問題的辦法(文檔)。減少人為解決問題的成本。

后面的文章也是根據流程,一個節點一個節點來組織

性能類型

包括但不僅限於下面的幾種類型。下面的這些,僅僅是基於我們團隊使用的技術而言。如果有使用更多的技術可以往里面補充,比如說:cdn緩存加速等。

瀏覽器

瀏覽器是用戶接觸的第一道程序。往往在這里的優化很直接、簡單,而且效果反而會很好。

  1. 資源靜態緩存
  2. 資源靜態按需加載

網絡

目前網絡還是比較嚴重的性能瓶頸。商用的企業帶寬也比較貴,所以優化是非常有必要的。

  1. 合並請求
  2. 壓縮傳輸(gzip)
  3. 壓縮http的response內容

服務器

首先要確保每一個軟件本身已經是優化過的,而且對應的軟件的應用場景也是優化過。

  1. 操作系統(linux)
  2. 代理(nginx)
  3. web容器(tomcat)
  4. web應用(java)
  5. 數據庫(mysql)

架構

架構的統一解決,可以讓開發在一定的程序減少對性能的考慮。

  1. 業務規划。比如說:動靜分離,並且使用不同域名。
  2. 分布。把重要的應用分布部署,獨立提供服務。
  3. 集群。集群+負載均勻,是解決性能很直接的問題。但是最后放在所有的性能已經是最佳的情況下,再去考慮集群。這樣會減少運維成本及資金成本。
  4. 緩存化。把熱點命中的內容,又使用非常頻率的使用緩存。要考慮使用的場景和命中率。
  5. 靜態化。把常年不變的內容,都走靜態化,是一個非常棒的想法。最好是做成對業務透明,無影響。

軟件研發

很多性能問題是在研發的過程中產生的。

  1. 高性能的設計。比如:合理的數據庫字段冗余。比如算法的復雜度。
  2. 高性能的規范。比如:不允許for里有io等。
  3. 高性能的標准。每個業務,要有一個標准,超過這個標准要要優化。不用每一個都必須優化,這樣也影響開發效率。有目的的優化,8/2比例。用20%的時間,解決80%有性能問題。

框架

  1. 消息隊列。解決復雜場景,不需要用戶等待。如果解決實效性沒那么強的業務。

語言(java)

對虛擬機的優化。

流程

熟悉流程及節點,才能定位性能的問題。而且優化的順序一般也是按請求的流程逐一優化。這里的流程只是做個概要,並不代表全面。

整個流程是以最快的方式讓用戶看到結果

重復問題

如果有重復的問題,交給更高層節點(流程里的前一個節點)去解決。比如說:如果能在代理級別做靜態和緩存,就不要在web容器里去實現,更不要在web應用里去實現。

文檔的統一結構

  1. 場景
  2. 解決方案
  3. 驗證方法

更高目標暢想

通過雲計算來實現這些功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM