日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net細微的效率提升

發布時間:2024/9/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net細微的效率提升 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?????????? 相對于原來的for語句foreach具有更好的執行效率,foreach的平均花費時間只有for30%。通過測試結果在forforeach都可以使用的情況下,我們推薦使用效率更高的foreach另外,for寫入數據時間大約是讀取數據時間的10倍左右;

?????????? ?asp.net程序中,使用sa賬號的是一種非常不安全的做法,它具有在數據庫上執行任何操作的權限。黑客可以調用類似于xp_cmdshell這樣的擴展存儲過程進行攻擊;

?????????? 在處理數據交互的時候,盡量將組織SQL語句的處理放到中間層(比如專門的數據操作類、存儲過程等),這是防止注入式攻擊的有效方法;

?????????? ?避免到服務器的不必要的往返過程。使用 Page.IsPostBack 避免對往返過程執行不必要的處理;

?????????? 一定要禁用調試模式;

?????????? 一般情況下,讀取大量數據,對返回數據不做大量處理用SqlDataReader.對返回數據大量處理用DatSet比較合適.SqlDataReaderDataSet的選擇取決于程序功能的實現;

?????????? 數據綁定建議使用<%# ctype(Container.DataItem,DataRowView).Row("字段名") %>數據量大的時候可提高幾百倍的速度;

?????????? 使用短路的邏輯運算
VB.net的邏輯運算中使用 Andalso 代替 AndOrElse 代替Or
C#的邏輯運算中用使用&& 代替 &,用||代替|.
所謂短路運算是指-編譯的代碼可以根據一個表達式的計算結果跳過對另一表達式的計算,例如:
邏輯運算 if A and B then,其中AB是表達式,代碼運行時,要分別計算A B的值,而如果是
if A Andalso B thenA先計算,如果A的值為true,則不再計算B的值。這樣如果B的計算復雜或
涉及過程調用,使用Andalso則會減小不必要的性能損耗。
對于ororelse,情況和上面相同不再廢話。

?????????? 使用+=-= 等簡化操作符
例如原有表達式 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(textboxControl繼承) 使用DirectCast代替Ctype,這會提高系統性能,但是如果要將一個Integer轉成 String ,則不能 使用,因為IntegerString類型不是繼承關系。
C#中沒有和DirectCast相應的函數。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Asp.net細微的效率提升的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。