BoneCP数据库连接池性能上的缺点?

测试环境说明:

硬件环境:CPU1.73G;内存:1G

软件环境:JDK1.6+Eclipse3.4+Tomcat6.0

BoneCP版本:bonecp0.6.4/bonecp0.6.7.2/bonecp0.7.0

 

使用过程中对BoneCP数据库连接池的性能是否有缺点存在一些疑问,一直没有整理,今天大致记录一下:

 

1)在开发过程中发现,使用BoneCP数据库连接池时,如果setPartitionCount()方法以及setMaxConnectionsPerPartition()的值设置过大,有时Tomcat启动非常慢,甚至无法启动(TomcatTimeOuts参数,我的设置是45s);同时在进行大数据量导入时,数据库操作也非常慢,CPU占用率无明显增加。

2)如果值设置较小,则Tomcat启动正常,但执行速度只比C3P0略快

3)原以为作为新兴的连接池,会随着版本的升级,性能上会有所完善和改进,不过测试了几个版本的连接池,感觉性能都差不多。用bonecp0.7.0测试时,测试导入10000条数据时,分别用BoneCPv0.7.0C3P0v0.9.1.2连接池各测试了5次,平均导入时间分别为321.89s368.506sBoneCP并无明显的优势。

 

    当然,就以上体验而言,未必说明BoneCP连接池一定有问题,也可能是我在连接池参数上的设置有问题,使用BoneCP0.7.0测试时,我的设置如下:

BoneCPDataSource bcpds=new BoneCPDataSource(); bcpds.setDriverClass(driver); bcpds.setJdbcUrl(url); bcpds.setUsername(username); bcpds.setPassword(passwd); //BoneCP0.7.0 bcpds.setAcquireIncrement(1); bcpds.setAcquireRetryDelay(10000); bcpds.setIdleMaxAge(200); bcpds.setIdleConnectionTestPeriod(100); bcpds.setStatementsCacheSize(200); bcpds.setReleaseHelperThreads(20); int count=2; bcpds.setMinConnectionsPerPartition(minsize/count); bcpds.setMaxConnectionsPerPartition(maxsize/count); bcpds.setPartitionCount(count);

 

    不知道用过该连接池的用户有何高见,请不吝赐教。

你可能感兴趣的:(Java相关,数据库连接池,tomcat,测试,c3p0,eclipse,数据库)