日期:2014-05-19  浏览次数:20432 次

请教,哪一个更快?
我在SqlHelper中内设连接字符串,有两种办法:
public   static   readonly   string   strConnection   =   ConfigurationManager.ConnectionStrings[ "dsn "].ConnectionString;
从配置文件中读取

public   string   strConnection   =   System.Web.HttpContext.Current.Application[ "dsn "].ToString();
从Application中读取(在Application_Start时已经读取过dsn)

我个人觉得第二种办法快,是这样吗?Application中会有很多很多缓存对象。

------解决方案--------------------
public string strConnection = System.Web.HttpContext.Current.Application[ "dsn "].ToString();


这种绝对快

不过,在网页中直接把页面缓存起来是最快的
------解决方案--------------------
没试过 个人觉得这个花消可以忽略不计.
建议你进行测试:
每个循环100000次看看哪个快.
我估计差不多一样.
------解决方案--------------------
System.Web.HttpContext.Current.Application[ "dsn "].ToString();
这个应该是放在服务器端内存里的,所以快些!
------解决方案--------------------
同样快 两个都缓存了 放在内存中
同样hashtable形式读取数据
应该是一样的
------解决方案--------------------
static readonly 的赋值只用执行一次,应该差不多.
------解决方案--------------------
强烈建议用第一个
------解决方案--------------------
那写成const是不是更快?
------解决方案--------------------
我一直用第一个,没有比较过两个的区别。
------解决方案--------------------
正确做法应该是使用哈希函数缓存数据库连接
你这样的做法觉得不可取
------解决方案--------------------
这两个从理论上来说上一样快
实际上我也没感觉到任何差别
------解决方案--------------------
差不多的。
------解决方案--------------------
连接自有连接池去处理,自己最好还是不要想办法去缓存连接

个人觉得2个应该是差不多的;
------解决方案--------------------
这个应该不是提高的性能的关键,连接由连接池管理,我们记得及时回收就OK
------解决方案--------------------
没有用过,理解是:第二种办法快
------解决方案--------------------
应该是第二种速度快吧!
我一般都是把连接字符串放在web.config里,或者是那种带designer的工程,在那个工程里把那个configure文件夹里的那个文件,给一次性配置好了就都OK了。
------解决方案--------------------
嗯.应该第二.

public static readonly 这些好像很多.