1. 首先连接较小的字符串可以显著提高操作性能,因为这样可以使用告诉缓存。例如,考虑下面的代码:
str = str + “.” + Environment.NewLine
首先连接较小的字符串可以用到高速缓存并提高连接操作性能:
str = str + (“.” + Environment.NewLine)
2. 在web开发中构造字符串发送到客户端也是有讲究的,考虑以下代码:
strHTML = “<HTML><BODY>”;
strHTML = strHTML + “My name is:”;
strHTML = strHTML + Request.ServerVariables(“SERVER_NAME”);
strHTML = strHTML + “</BODY></HTML>”;
Response.Write(strHTML);
这种连接方法容易理解,但效率低下,因为当声明strHTML时系统无法了解它需要占用多大的内存空间,仅当给变量赋值时,系统才知道分配多少内存空间,对于每一次附加的字符串连接操作,系统必须分配更多的内存空间,然后复制字符,要知道内存的分配和复制非常耗时间和资源!上面的代码段潜在的开始了4个互不相连的内存分配过程,这并不困难,但由于这是web页,对于每一次页面请求都要如此,如果该web页面每秒接收5个请求,则每秒会发生20次的内存分配和字符复制过程,天哪!
因此我们采用如下方式优化上述代码,将所有的字符串片断置入一个数组,然后把这些字符串片断连接为一个字符串:
string[] arrString = new String[3];
string strHTML;
arrString [0] = “<HTML><BODY>”;
arrString [1] = “My name is:”;
arrString [2] = Request.ServerVariables(“SERVER_NAME”);
arrString [3] = “</BODY></HTML>”;
strHTML = arrString[0] + arrString[1] + arrString[2] + arrString[3];
Response.Write(strHTML);
哇卡卡!这样就减少了内存分配次数和复制次数。你还费解吗?