c#字符串学习笔记一

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);

 

哇卡卡!这样就减少了内存分配次数和复制次数。你还费解吗?

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值