您的位置:首页 > 数据库

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

2011-02-28 08:52 78 查看
测试环境说明:
硬件环境:CPU:1.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启动非常慢,甚至无法启动(Tomcat的TimeOuts参数,我的设置是45s);同时在进行大数据量导入时,数据库操作也非常慢,CPU占用率无明显增加。
2)如果值设置较小,则Tomcat启动正常,但执行速度只比C3P0略快。
3)原以为作为新兴的连接池,会随着版本的升级,性能上会有所完善和改进,不过测试了几个版本的连接池,感觉性能都差不多。用bonecp0.7.0测试时,测试导入10000条数据时,分别用BoneCPv0.7.0及C3P0v0.9.1.2连接池各测试了5次,平均导入时间分别为321.89s、368.506s。BoneCP并无明显的优势。

当然,就以上体验而言,未必说明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);


不知道用过该连接池的用户有何高见,请不吝赐教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: