一 string和stringbuilder
少量的字符串操作不宜采用stringbuilder。
由于string是不可變得對象,對于string的疊加,每次操作都會生成一個新的string對象。所以針對大量string的操作時,我們會采用stringbuilde。但似乎很多人都知道這一點,所以只要字符串相加,不管三七二一都用stringbuilder。其實這是個誤區,在這里要注意"大量"一詞,少量的字符串操作用stringbuilder反而得不償失。
比如下面的兩種寫法:
string sql = "insert into table (,,,)";
sql += " values ('')";和
stringbuilder sb = new stringbuilder();
sb.append("insert into table (,,,)");
sb.append(" values ('')");
string s = sb.tostring();
宜采取第一種寫法。因為只有兩個字符串的相加,談不上大量。如果用stringbuilder,最后還需要轉換成string,結果性能反而差一些。
二 慎用異常
由于程序拋出一個異常,就會創建一個異常對象,然后應用程序會在catch塊中捕獲該異常,造成性能影響非常大。
比如:
int orderid;
try
{
orderid = convert.toint32(this.txtorderid.text);
}
catch(exception e)
{
orderid = .
}
這樣的代碼很不合適,造成的性能開銷非常大。應該在客戶端寫js代碼先去驗證txtorderid是否符合要求。
三 關于session, request
session:
很多人喜歡用session來保存持久對象的值。 但是當你的程序部署在多臺服務器上做負載均衡時,可能會得不到session保存的變量的值。 另外,由于session是服務器端的內建對象,每開啟一個session對象,都在服務器上占用一些資源。
request:
在頁面間傳值取值時,看到很多人都這么寫代碼:
string customername = this.request["txtcustomername"].tostring();
其實后面的tostring()多此一舉。this.request["...."]本來就是string類型的,不必再去tostring()一下。
今天就寫那么多吧,要還有其他問題,再補充。
國內最大的酷站演示中心!新聞熱點
疑難解答