如何開發高效能的web應用程式,是程式設計師和使用者都希望得到的效果,效能問題是乙個綜合問題,如今普遍開發的web應用程式都會涉及到各種技術點,各種演算法、設計模式、架構、資料庫技術,因此效能的優化必然也是乙個綜合的方法。
我們知道
不同的sql 語句得到相同的乙個結果,資料庫所用的查詢時間可以相差10倍甚至100倍以上;
乙個有策略性的快取可以減少成千上萬次重複的資料庫訪問;
我們專注於資料庫sql 語句本身查詢計畫的時候,策略性的設計冗餘字段 或 分開計算部分結果,甚至可以使查詢的時間縮短到原來的1/100;
效能的優化是乙個綜合的方法,任何的技巧都是針對特定場景的優化,同時也可能帶來另一方面的負面影響,因此我們開發高效能的web應用程式的時候,也需要針對特定場景選擇特定的技巧。e8.net的客戶在開發高效能的web應用程式的時候用到了各種優化技巧,主要技巧總結如下:
1、sql 依賴快取:
.net framework 2.0提供了sql 依賴快取的技術,這個技術可以使很多所有使用者讀到相同結果的資料,改為從記憶體中讀取,減少資料庫訪問的次數,降低資料庫cpu的壓力,但會提高web伺服器的一些壓力,和增加少量的記憶體佔用量。
應用場景主要針對一些基礎資料、組織結構資料等的訪問,e8.net提供了實現這一方法的乙個公共元件,包含全部原始碼
詳情:2、頁面快取、控制項快取的技巧
頁面快取失效範例
注意的是,雖然.net提供了可以根據引數不同來快取,但這樣對記憶體的占用增加非常大,建議謹慎使用
3、關閉不必要的viewstate
在.net提交後台處理時不需要的控制項和資料 可以關閉viewstate這樣可以大大減少頁面的大小,提高網路流量的資料,比如乙個部門樹的控制項,載入了乙個大集團的組織結構的話,關閉viewstate後深圳可以將頁面大小變為以前的1/10,讓使用者體驗更加流暢。
4、智慧型的靜態頁面處理技巧
一些已經處理完成的頁面展示的時候,系統已經不再有互動的動作,對於使用者來說,僅僅只是檢視結果的情況下,可以智慧型的生成靜態頁面檔案,只有乙個使用者是通過.net計算去獲得展示,其它使用者訪問的則是生成的靜態頁面,這樣也可以減少非常大資料量的.net計算,提高效能。 比如e8.net工作流平台中展示流程結束後的結果就有客戶使用到了這些技巧,大大減少了伺服器的壓力。
詳情:這樣做也有一些負面的影響,比如萬一還有後續的互動動作的話就無法處理了,同時也增加了硬碟的儲存壓力,加大了一些關鍵資訊被流氓軟體收錄並從網際網路搜到的風險。
5、靜態變數的方法
如果僅僅只對於乙個簡單變數來說,靜態變數的方法對於優化來說可以認為是很微小的,但我們的應用程式中往往用到了各種設計模式,比如工廠模式,一些具體實現的物件是通過反射機制動態載入的。這個時候,我們用靜態變數的方法,再結合一些可系列化的儲存機制,可以使動態載入的動作只執行一次,這樣對效能的提公升也是非常大的。
詳情:6、通過cache機制快取 配置資訊 、系統引數
一些配置檔案 系統引數等內容可以通過 cache快取,這樣我們的系統不必要從資料庫中讀取,而是直接讀取記憶體,也可以大大提高應用程式的效能。
詳情:
提高效能的技巧還有非常多,關鍵是我們要針對特定的場景採用特定的技巧。 程式寫得多了自然能找到更多更好的方法。
MyEclispe開發WEB應用程式
myeclispe開發web應用程式 一 準備 二 配置 安裝完myeclipse後在eclipse中會出現乙個myeclipse的選單 設定web伺服器 tomcat 選擇tomcat jdk,增加乙個tomcat jdk 三 建立工程 在new project wizard中選擇j2ee下的we...
Web應用程式開發 二
web應用程式開發 二 乙個host代表乙個web站點 1 虛擬目錄的根目錄 自己指定乙個檔案系統目錄是web站點的根目錄,在server.xml中在元素中間增加 2 虛擬目錄的子目錄 1 在server.xml中在元素中間增加 3 達成乙個war包,在server.xml檔案中配置 虛擬子目錄的名...
C 應用程式效能優化
本文選自c 應用程式效能優化 第2版 一書 總 序 去國離家十六載後,2006年,當我再次歸來凝視上海這座不夜城時,不由地感慨世界真的變小了 變平了,中國作為地球村的一員,正以驚人的速度發展變化著。世界正改變著中國,中國也不斷影響著世界。在備感欣喜振奮之餘,我亦常常思索,在乙個越來越小 越來越平的世...