專案的優化有很多種,有前端頁面的優化,有後端**及資料庫的優化,還有更深一層系統的優化。
首先我們先想一想,為什麼要優化?我認為啊,無非是乙個,使用者體驗差;而差呢,可能是因為頁面渲染慢,使用者請求處理速度慢。而針對這些問題,我們也想過很多種方案。
前端的優化
使用前後端分離開發,靜態檔案就是靜態檔案,不要涉及到後台的操作。如今有很多框架都實現mvc的架構,這也有他的優勢,開發和管理都相對較快,但你想想,每次顯示個靜態頁面都需要請求後台,那會不會加重伺服器壓力?
使用懶載入的方式,懶載入能加快你的圖層渲染,特別是電商系統,如果你不用懶載入,你想一下子載入那麼多,會是什麼樣的結果,如果網路差點,我都想關掉了。
生成快取頁面,等到點了就再請求。
後端優化
**規範,這個詞我想大家都很熟悉,有些**上面冗餘,還有語法上面的錯誤,可能會導致走多一步的情況。例如:for($i = 0; i
<=c
ount
(i <= count(
i<=c
ount
(count); $i++){}
資料庫方面,在資料庫的建表的時候,我們應該想如何使用最小的記憶體儲存我們最有用的資訊。例如性別的時候你就應該使用tinyint型別
合理應用索引,當你使用聯合索引要遵循從左原則。索引還要考慮資料庫的引擎,innodb的b樹索引,因為b樹的結構,可能會導致出查詢時因為操作不當而沒有使用到索引;myisam引擎時使用雜湊儲存索引的,所以資料少的時候,查詢速度很快,但資料多你就需要想想其他辦法了。
資料庫分表操作。
使用快取資料庫,分擔資料庫壓力。例如:redis,mongodb
系統優化
增加伺服器的配置。這個不用說都知道(前提是能負擔得起)
實現負載均衡,可以使用多個伺服器來分擔使用者的請求操作。(三種方案)
反向**,緩解伺服器壓力。
這幾個優化方案只是個人見解(不喜勿噴),如果有更多的優化方案可以一起討論,發表你的個人意見。
mapreduce優化方案
1.任務排程 任務排程是hadoop中重要的環節 1.計算方面,hadoop會將任務分配給空閒機器,使所有的任務能公平地分享系統資源。2.i o資料流方面,會盡量將map任務分配給inputsplit所在的機器,減少i o操作。2.資料預處理與inputsplit的大小 1.mapredue適合處理...
hibernate優化方案
原文從延遲載入 抓取策略 快取管理三方面介紹了關於hibernate優化的方法 優化hibernate所鼓勵的7大措施 1.盡量使用many to one,避免使用單項one to many hibernate鼓勵使用雙向一對多關聯,不使用單向一對多關聯。單向一對多關聯對映是在one端維護關係的,必...
Android UI優化方案
通常來說,android需要把xml布局檔案轉換成gpu能夠識別並繪製的物件。這個操作是在displaylist的幫助下完成的。displaylist持有所有將要交給gpu繪製到螢幕上的資料資訊。listview adapter優化 overdraw 過度繪製 描述的是螢幕上的某個畫素在同一幀的時間...