C#字串學習筆記
1. 首先連線較小的字串可以顯著提高操作效能,因為這樣可以使用告訴快取。例如,考慮下面的程式碼:
str = str + “.” + Environment.NewLine
首先連線較小的字串可以用到快取記憶體並提高連線操作效能:
str = str + (“.” + Environment.NewLine)
2. 在web開發中構造字串傳送到客戶端也是有講究的,考慮以下程式碼:
strHTML = “”;
strHTML = strHTML + “My name is:”;
strHTML = strHTML + Request.ServerVariables(“SERVER_NAME”);
strHTML = strHTML + “”;
Response.Write(strHTML);
這種連線方法容易理解,但效率低下,因為當宣告strHTML時系統無法瞭解它需要佔用多大的記憶體空間,僅當給變數賦值時,系統才知道分配多少記憶體空間,對於每一次附加的字串連線操作,系統必須分配更多的記憶體空間,然後複製字元,要知道記憶體的分配和複製非常耗時間和資源!上面的程式碼段潛在的開始了4個互不相連的記憶體分配過程,這並不困難,但由於這是web頁,對於每一次頁面請求都要如此,如果該web頁面每秒接收5個請求,則每秒會發生20次的記憶體分配和字元複製過程,天哪!
因此我們採用如下方式優化上述程式碼,將所有的字串片斷置入一個陣列,然後把這些字串片斷連線為一個字串:
string[] arrString = new String[3];
string strHTML;
arrString [0] = “”;
arrString [1] = “My name is:”;
arrString [2] = Request.ServerVariables(“SERVER_NAME”);
arrString [3] = “”;
strHTML = arrString[0] + arrString[1] + arrString[2] + arrString[3];
Response.Write(strHTML);
這樣就減少了記憶體分配次數和複製次數。你還費解嗎?
4. 如何分解句子到單詞:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-591952/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 字串學習筆記字串筆記
- 字串家族 學習筆記字串筆記
- 【學習筆記】字串匹配筆記字串匹配
- C#學習筆記C#筆記
- KMP字串匹配學習筆記KMP字串匹配筆記
- c#學習筆記(一)C#筆記
- C#特性學習筆記C#筆記
- 【Python學習】學習筆記 14-15 字串Python筆記字串
- Python學習筆記 - 字串,數字Python筆記字串
- Qt學習筆記(五)QString 字串QT筆記字串
- C/C++學習筆記:字串C++筆記字串
- unity學習筆記-C#協程Unity筆記C#
- 我的C#學習筆記14C#筆記
- 我的C#學習筆記1C#筆記
- 精通C#學習筆記--C# 與 .NET平臺C#筆記
- Python 學習筆記(6)— 字串格式化Python筆記字串格式化
- Python學習筆記:第3天 字串的操作Python筆記字串
- Python3學習筆記-字串和編碼Python筆記字串
- ES6學習筆記(一)【變數,字串】筆記變數字串
- C# 多執行緒學習筆記 – 1C#執行緒筆記
- 精通C#學習筆記---C#核心程式設計結構C#筆記程式設計
- Solidity語言學習筆記————18、字串和函式Solid筆記字串函式
- C#學習筆記-欄位、屬性、索引器C#筆記索引
- numpy的學習筆記\pandas學習筆記筆記
- C#學習筆記(補充)——擴充套件方法、事件C#筆記套件事件
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- C# 使用執行緒池佇列(學習筆記)C#執行緒佇列筆記
- C#設計模式學習筆記:設計原則C#設計模式筆記
- C#設計模式學習筆記:(9)組合模式C#設計模式筆記
- 學習筆記筆記
- ES6學習筆記4--字串的擴充套件筆記字串套件
- C#學習筆記之值型別與引用型別C#筆記型別
- C#關於List<T>的自定義排序學習筆記C#排序筆記
- C#學習日記4C#
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- 機器學習學習筆記機器學習筆記
- C#學習筆記(與Java、C、C++和Python對比)C#筆記JavaC++Python
- C#學習筆記(六)——物件導向程式設計簡介C#筆記物件程式設計