在ASP.NET中我們經(jīng)常要用到文本對象,一般的操作是定義一個string mystr,然后用mystr+="aaaa"之類的運算來累加.其實還有一個效率高得多的方法:使用 System.Text.StringBuilder 類,該類提供了更高的性能. 舉例:我們通常會這么寫: String begin_query = "select UPPER(MachineName) As MachineName, "+"LOWER(MachineOwner) As MachineOwner, Status, "+ "StartTime from NET_STRESS WHERE "; String end_query = " AND StartTime > '" + startTime + "'AND StartTime < '" + endTime + "'"; String query = begin_query + GetWhereClause("PASSED") + end_query;
用StringBuilder類這么寫:
StringBuilder begin_query = new StringBuilder(); begin_query.Append("select UPPER(MachineName) As MachineName "); begin_query.Append("LOWER(MachineOwner) As MachineOwner, Status, "); begin_query.Append("StartTime from NET_STRESS WHERE ");
StringBuilder end_query = new StringBuilder(); end_query.Append(" AND StartTime > '"); end_query.Append(startTime); end_query.Append("' AND StartTime < '"); end_query.Append(endTime); end_query.Append("'");
String query = begin_query.Append(GetWhereClause("PASSED")).Append(end_query).ToString();
其實這個例子中性能的提高有限,畢竟串長度很短,阿貓寫的一個程序需要動態(tài)生成大約500K的報表頁面,用STRING需要40-60秒,用StringBuilder只需<10
|