日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP.NET中常用的26個(gè)優(yōu)化性能方法(2)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:如何構(gòu)造一個(gè)C#語言的爬蟲程序
C#特別適合于構(gòu)造蜘蛛程序,這是因?yàn)樗呀?jīng)內(nèi)置了HTTP訪問和多線程的能力,而這兩種能力對(duì)于蜘蛛程序來說都是非常關(guān)鍵的。下面是構(gòu)造一個(gè)蜘蛛程序要解決的關(guān)鍵問題:  �、� HTML分析:需要

4. 一定要禁用調(diào)試模式  

在部署生產(chǎn)應(yīng)用程序或進(jìn)行任何性能測(cè)量之前,始終記住禁用調(diào)試模式。如果啟用了調(diào)試模式,應(yīng)用程序的性能可能受到非常大的影響。   

5. 對(duì)于廣泛依賴外部資源的應(yīng)用程序,請(qǐng)考慮在多處理器計(jì)算機(jī)上啟用網(wǎng)絡(luò)園藝  

ASP.NET 進(jìn)程模型幫助啟用多處理器計(jì)算機(jī)上的可縮放性,將工作分發(fā)給多個(gè)進(jìn)程(每個(gè)CPU一個(gè)),并且每個(gè)進(jìn)程都將處理器關(guān)系設(shè)置為其 CPU。此技術(shù)稱為網(wǎng)絡(luò)園藝。如果應(yīng)用程序使用較慢的數(shù)據(jù)庫(kù)服務(wù)器或調(diào)用具有外部依賴項(xiàng)的 COM 對(duì)象(這里只是提及兩種可能性),則為您的應(yīng)用程序啟用網(wǎng)絡(luò)園藝是有益的。但是,在決定啟用網(wǎng)絡(luò)園藝之前,您應(yīng)該測(cè)試應(yīng)用程序在網(wǎng)絡(luò)園中的執(zhí)行情況。   

6. 只要可能,就緩存數(shù)據(jù)和頁(yè)輸出  

ASP.NET 提供了一些簡(jiǎn)單的機(jī)制,它們會(huì)在不需要為每個(gè)頁(yè)請(qǐng)求動(dòng)態(tài)計(jì)算頁(yè)輸出或數(shù)據(jù)時(shí)緩存這些頁(yè)輸出或數(shù)據(jù)。另外,通過設(shè)計(jì)要進(jìn)行緩存的頁(yè)和數(shù)據(jù)請(qǐng)求(特別是在站點(diǎn)中預(yù)期將有較大通訊量的區(qū)域),可以優(yōu)化這些頁(yè)的性能。與 .NET Framework 的任何 Web 窗體功能相比,適當(dāng)?shù)厥褂镁彺婵梢愿玫奶岣哒军c(diǎn)的性能,有時(shí)這種提高是超數(shù)量級(jí)的。使用 ASP.NET 緩存機(jī)制有兩點(diǎn)需要注意。首先,不要緩存太多項(xiàng)。緩存每個(gè)項(xiàng)均有開銷,特別是在內(nèi)存使用方面。不要緩存容易重新計(jì)算和很少使用的項(xiàng)。其次,給緩存的項(xiàng)分配的有效期不要太短。很快到期的項(xiàng)會(huì)導(dǎo)致緩存中不必要的周轉(zhuǎn),并且經(jīng)常導(dǎo)致更多的代碼清除和垃圾回收工作。若關(guān)心此問題,請(qǐng)監(jiān)視與 ASP.NET Applications 性能對(duì)象關(guān)聯(lián)的 Cache Total Turnover Rate 性能計(jì)數(shù)器。高周轉(zhuǎn)率可能說明存在問題,特別是當(dāng)項(xiàng)在到期前被移除時(shí)。這也稱作內(nèi)存壓力。

7. 選擇適合頁(yè)面或應(yīng)用程序的數(shù)據(jù)查看機(jī)制  

根據(jù)您選擇在 Web 窗體頁(yè)顯示數(shù)據(jù)的方式,在便利和性能之間常常存在著重要的權(quán)衡。例如,DataGrid Web 服務(wù)器控件可能是一種顯示數(shù)據(jù)的方便快捷的方法,但就性能而言它的開銷常常是最大的。在某些簡(jiǎn)單的情況下,您通過生成適當(dāng)?shù)?HTML 自己呈現(xiàn)數(shù)據(jù)可能很有效,但是自定義和瀏覽器定向會(huì)很快抵銷所獲得的額外功效。Repeater Web 服務(wù)器控件是便利和性能的折衷。它高效、可自定義且可編程。   

8. 將 SqlDataReader 類用于快速只進(jìn)數(shù)據(jù)游標(biāo)  

SqlDataReader 類提供了一種讀取從 SQL Server 數(shù)據(jù)庫(kù)檢索的只進(jìn)數(shù)據(jù)流的方法。如果當(dāng)創(chuàng)建 ASP.NET 應(yīng)用程序時(shí)出現(xiàn)允許您使用它的情況,則 SqlDataReader 類提供比 DataSet 類更高的性能。情況之所以這樣,是因?yàn)?SqlDataReader 使用 SQL Server 的本機(jī)網(wǎng)絡(luò)數(shù)據(jù)傳輸格式從數(shù)據(jù)庫(kù)連接直接讀取數(shù)據(jù)。另外,SqlDataReader 類實(shí)現(xiàn) IEnumerable 接口,該接口也允許您將數(shù)據(jù)綁定到服務(wù)器控件。有關(guān)更多信息,請(qǐng)參見 SqlDataReader 類。有關(guān) ASP.NET 如何訪問數(shù)據(jù)的信息,請(qǐng)參見通過 ASP.NET 訪問數(shù)據(jù)。   

9. 將 SQL Server 存儲(chǔ)過程用于數(shù)據(jù)訪問  

在 .NET Framework 提供的所有數(shù)據(jù)訪問方法中,基于 SQL Server 的數(shù)據(jù)訪問是生成高性能、可縮放 Web 應(yīng)用程序的推薦選擇。使用托管 SQL Server 提供程序時(shí),可通過使用編譯的存儲(chǔ)過程而不是特殊查詢獲得額外的性能提高。   

10. 避免單線程單元 (STA) COM 組件  

默認(rèn)情況下,ASP.NET 不允許任何 STA COM 組件在頁(yè)面內(nèi)運(yùn)行。若要運(yùn)行它們,必須在 .aspx 文件內(nèi)將 ASPCompat=true 屬性包含在 @ Page 指令中。這樣就將執(zhí)行用的線程池切換到 STA 線程池,而且使 HttpContext 和其他內(nèi)置對(duì)象可用于 COM 對(duì)象。前者也是一種性能優(yōu)化,因?yàn)樗苊饬藢⒍嗑程單元 (MTA) 封送到 STA 線程的任何調(diào)用。使用 STA COM 組件可能大大損害性能,應(yīng)盡量避免。若必須使用 STA COM 組件,如在任何 interop 方案中,則應(yīng)在執(zhí)行期間進(jìn)行大量調(diào)用并在每次調(diào)用期間發(fā)送盡可能多的信息。另外,小心不要在構(gòu)造頁(yè)面期間創(chuàng)建任何 STA COM 組件。例如下面的代碼中,在頁(yè)面構(gòu)造時(shí)將實(shí)例化由某個(gè)線程創(chuàng)建的 MySTAComponent,而該線程并不是將運(yùn)行頁(yè)面的 STA 線程。這可能對(duì)性能有不利影響,因?yàn)橐獦?gòu)造頁(yè)面就必須完成 MTA 和 STA 線程之間的封送處理。


<%@ Page Language="VB" ASPCompat="true" %>
<script. runat=server>
Dim myComp as new MySTAComponent()
Public Sub Page_Load()
myComp.Name = "Bob"
End Sub
</script>
<html>
<%
Response.Write(myComp.SayHello)
%>
</html>

分享:ASP.NET MVC :實(shí)現(xiàn)我們自己的視圖引擎
在ASP.NET MVC的一個(gè)開源項(xiàng)目MvcContrib中,為我們提供了幾個(gè)視圖引擎,例如NVelocity, Brail, NHaml, XSLT。那么如果我們想在ASP.NET MVC中實(shí)現(xiàn)我們自己的一個(gè)視圖引擎,我們應(yīng)該要怎么做呢?

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2008-08-22
相關(guān).Net教程