Asp.net細微的效率提升
?????????? 相對于原來的for語句foreach具有更好的執行效率,foreach的平均花費時間只有for的30%。通過測試結果在for和foreach都可以使用的情況下,我們推薦使用效率更高的foreach。另外,用for寫入數據時間大約是讀取數據時間的10倍左右;
?????????? ?在asp.net程序中,使用sa賬號的是一種非常不安全的做法,它具有在數據庫上執行任何操作的權限。黑客可以調用類似于xp_cmdshell這樣的擴展存儲過程進行攻擊;
?????????? 在處理數據交互的時候,盡量將組織SQL語句的處理放到中間層(比如專門的數據操作類、存儲過程等),這是防止注入式攻擊的有效方法;
?????????? ?避免到服務器的不必要的往返過程。使用 Page.IsPostBack 避免對往返過程執行不必要的處理;
?????????? 一定要禁用調試模式;
?????????? 一般情況下,讀取大量數據,對返回數據不做大量處理用SqlDataReader.對返回數據大量處理用DatSet比較合適.對SqlDataReader和DataSet的選擇取決于程序功能的實現;
?????????? 數據綁定建議使用<%# ctype(Container.DataItem,DataRowView).Row("字段名") %>。數據量大的時候可提高幾百倍的速度;
?????????? 使用“短路”的邏輯運算
在VB.net的邏輯運算中使用 Andalso 代替 And,OrElse 代替Or,
在C#的邏輯運算中用使用&& 代替 &,用||代替|.
所謂“短路”運算是指-編譯的代碼可以根據一個表達式的計算結果跳過對另一表達式的計算,例如:
邏輯運算 if A and B then,其中A和B是表達式,代碼運行時,要分別計算A 和 B的值,而如果是
if A Andalso B then,A先計算,如果A的值為true,則不再計算B的值。這樣如果B的計算復雜或
涉及過程調用,使用Andalso則會減小不必要的性能損耗。
對于or和orelse,情況和上面相同不再廢話。
?????????? 使用+=、-= 等簡化操作符
例如原有表達式 A=A+B
改為A+=B
這樣不僅減少了敲入代碼的數量,而且由于變量A只出現一次,在運行時也提高了系統的性能
類此的操作符還有*=、"=、/=、&=等
?????????? 使用stringBuilder代替string
string類型在內存中是不可變的,對已經定義的string類型的變量所做的任何修改,系統實際在
內存中都是新建一個string,而sringbuilder class則是在內存中新建對象,對其操作都是對這
個對象的修改。因此使用stringBuilder代替string會提高運行時的性能。
?????????? 在for循環內部定義變量
例如:for(int i=1;i<=10;i++)
{
....
}
而不是:int i;
for(i=1;i<=10;i++)
{
....
}
?????????? 設置Option Strict 啟用
在vs.net中啟用Option Strict,要求代碼中的數據類型嚴格轉換,避免由系統轉換造成的性能影響
?????????? 在VB.net類型轉換時考慮使用DirectCast代替Ctype
在vb.net中如果將某類型對象轉成其繼承型對象,例如將一個“control” 轉成一個textbox時(textbox從Control繼承)請 使用DirectCast代替Ctype,這會提高系統性能,但是如果要將一個Integer轉成 String ,則不能 使用,因為Integer和String類型不是繼承關系。
在C#中沒有和DirectCast相應的函數。
總結
以上是生活随笔為你收集整理的Asp.net細微的效率提升的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 喷淋管径与喷头数量规范表(喷淋管径与喷头
- 下一篇: 【BIOS大全】释义+设置+精解+释疑—