整理一些提高C 程式設計效能的技巧

2022-03-24 02:22:46 字數 1288 閱讀 6860

1、使用stringbuilder代替使用string 連線符 "+"

說明:string類物件是不可變的(唯讀),一旦建立該物件,就不能修改該物件的值。

物件string物件的重新賦值,本質上是重新建立了乙個string物件並將新的值賦值給該物件。

如果字串存在較多次的拼接時候,最後使用stringbuilder類,需要引用命名空間 system.text。

tostring方法返回操作結果。從而避免建立大量物件,造成資源浪費、效能降低。

例如://不要這樣寫

string str="bei";

str+="jing";

str+="huan";

str+="ying";

str+="ni";

//推薦這樣寫

stringbuilder str=new stringbuilder();

2、用foreach 代替 for 迴圈

如果是可以使用foreach的時候,盡量用foreach,而不是 for。前者的效率比後者要高很多。

3、使用hashtable 代替其他字典集合型別(如 stringdictionary、namevaluecollection),存放少量資料的時候可以使用hashtable。

4、避免使用arraylist

因為arraylist使用的時候存在裝箱、拆箱會造成效能的損失,可以用泛型來代替。

5、如果是字元進行比較的時候可以採用string.compare,它會忽略大小寫進行比較,而不要使用uppercase、lowercase轉換後進行比較。

6、如果只是從xml物件中讀取資料,可以用唯讀的xpathdocument代替xmldocument,可以提高效能。

7、c#捕獲異常的時候,不要使用通用的system.exception。可以根據程式邏輯考慮可能出現的異常進行控制。

8、要避免在迴圈體內宣告變數,如果可以的化,最好放在迴圈體外宣告,在迴圈體內初始化。

9、採用using和try/finaly來做資源清理

10、不要使用異常(exception)來控制程式的流程

因為捕獲異常對效能的損耗很大,最好不要用異常去控制程式的流程。

11、使用值型別的tostring方法避免裝箱操作。

因為值型別到引用型別會造成效能的損耗,所以使用值型別的tostring方法可以避免裝箱造成的效能損耗。

12、避免濫用反射,反射也是比較浪費效能的操作

當使用反射來呼叫型別或者觸發方法,或者訪問乙個字段或者屬性是,clr需要做很多任務作:校驗引數、檢查許可權、

所以非常耗時,因此這樣的情況下要盡量避免反射的使用。

整理一些提高C 程式設計效能的技巧

1 使用stringbuilder代替使用string 連線符 說明 string類物件是不可變的 唯讀 一旦建立該物件,就不能修改該物件的值。物件string物件的重新賦值,本質上是重新建立了乙個string物件並將新的值賦值給該物件。如果字串存在較多次的拼接時候,最後使用stringbuilde...

整理一些提高C 程式設計效能的技巧

1 使用stringbuilder代替使用string 連線符 說明 string類物件是不可變的 唯讀 一旦建立該物件,就不能修改該物件的值。物件string物件的重新賦值,本質上是重新建立了乙個string物件並將新的值賦值給該物件。如果字串存在較多次的拼接時候,最後使用stringbuilde...

c 程式設計的一些技巧

第一點,使用全域性物件的建構函式在程式啟動前呼叫函式 有一些應用程式需要在主程式啟動前呼叫其它函式。如 轉態過程函式 登記 功能函式都是必須在實際程式執行前被呼叫的。最簡單的辦法是通過乙個全域性物件 的建構函式來呼叫這些函式。因為全域性物件都是在主程式開始前被構造,這些函式 都將會在main 之前返...