首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

连接池实现原理及效率下的一点疑问

2012-11-01 
连接池实现原理及效率上的一点疑问?很早的时候就知道要提高访问数据的效率,连接池是其中一个最重要的环节。

连接池实现原理及效率上的一点疑问

?很早的时候就知道要提高访问数据的效率,连接池是其中一个最重要的环节。虽然知道其原理就是将连接提前建立好放在一个池子里,然后当需要的时候直接使用用建立好的连接,而不用 每次都新建,使用完后还会去,而不用关闭,刚开始的时候总是不太明白,或者说不知道他是如何储存连接,如何使用连接。

?? 最近就花了点时间,写了个简单的连接池,就重点介绍下连接池这个类:

?? DBConnPool.java

/** * 测试连接池效率 */DBConnPool dbconnpool=new DBConnPool("src/system.properties");times=(new Date()).getTime();System.out.println("第一次执行时间为:"+times);for(int i=0;i<10000;i++){Thread thread=new TestThread(i,dbconnpool);thread.start();}

?

其中还用直接用直接连接的测试用例(见附近)

测试结果如下:

?*????????????????????????????????????????????????????? ?同时执行个数50个的 时间???????? 同时执行个数200个的 时间???????? 同时执行个数5000个的 时间?????????? 同时执行个数10000个的 时间????
?* 连接池(最大连接2,最小连接1)???????????????????? 297ms???????????????????????????????????? 453ms????????????????????????????????????? 6375ms????????????????????????????? ?13906ms??????????????
?* 连接池(最大连接6,最小连接3)???????????????????? 281ms???????????????????????????????????? 469ms????????????????????????????????????? 5344ms????????????????????????????? ?11235ms??????????????????
?* 连接池(最大连接8,最小连接4)???????????????????? 297ms???????????????????????????????????? 485ms????????????????????????????????????? 5890ms????????????????????????????? ?11235ms????????????????
?* 连接池(最大连接10,最小连接5)??????????????????? 328ms??????????????????????????????????? 516ms???????????????????????????????????? 5438ms??????????????????????????????? 11469ms????????????????????
?* 连接池(最大连接20,最小连接10)?????????????????? 390ms????????????????????????????????? 563ms??????????????????????????????????? 5829ms????????????????????????????????? ?11890ms???????????????????
?* 连接池(最大连接30,最小连接20)?????????????????? 375ms?????????????????????????????????? 562ms??????????????????????????????????? 5766ms??????????????????????????????????11141ms????????????????

?

? * 普通连接方式??????????????????????????????????????????????1750ms???????????????????????????????? ?4922ms??????????????????????????????? 超过最大连接报异常了
?*

?

?? 对于结果的疑问,用连接池的方式,比直接连接的方式效率要高多了,这是无容置疑的,可是,当我增大连接池的数量时,那么当用多个访问时,效率且基本上没什么变化,这是为什么呢?,按道理池里面的连接数越多,速度应该越快,时间就越短,为什么没有这种效果,希望有人能指点小弟!

热点排行