JDBC连接池测试代码,烦请大家帮忙看看是否存在不正确的地方

Chris2018998 2018-07-14 04:11:39
个人在学习JDBC连接池,写了几个Java测试代码,担心写的有问题,烦请大家帮忙看一下,感谢。

https://github.com/Chris2018998/BeeCP
...全文
239 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chris2018998 2018-07-17
  • 打赏
  • 举报
回复
感谢回复,有设置的

对Link.properties配置说明一下

POOL_TYPE_ALL:参与性能对比的连接池类型
POOL_TYPE:从POOL_TYPE_ALL列表中选定一个,然后执行TestMutilBorrow.bat,TestMutilQuery.bat,TestSingleBorrow.bat, TestSingleQuery.bat 用于测试单个连接池性能

JDBC_USER : JDBC用户名
JDBC_PASSWORD: JDBC密码
JDBC_DRIVER: JDBC连接驱动
JDBC_URL: JDBC地址


POOL_MAX_ACTIVE: 连接池最大连接数
POOL_MIN_ACTIVE: 连接池最小连接数
POOL_INIT_SIZE: 连接池初始化连接数

REQUEST_THREAD_COUNT:并发线程数
THREAD_QUERY_COUNT:每个线程执行查询的次数
THREAD_QUERY_TABLE:被线并发程查询的表






Chris2018998 2018-07-17
  • 打赏
  • 举报
回复
补充说明一下:

1:setJAVA_HOME.bat 必须被设置,设置Java版本为Java8或以上

2:RunAntBatch.bat 是由于批量测试参与对比的连接池、执行该文件前,需要修改该文件中的 ANT_HOME变量

顺便提一下另外两个开元项目(非广告):
https://github.com/Chris2018998/IOC
https://github.com/Chris2018998/JDA



Chris2018998 2018-07-17
  • 打赏
  • 举报
回复
最新下载地址:
https://github.com/Chris2018998/BeeCP/blob/master/Doc/BeeCP_0.63.jar
https://github.com/Chris2018998/BeeCP/blob/master/Doc/JDBCPool_Test.zip

0.63去掉了statement缓存

个人本地环境
CPU: I3-7100(3.9GHZ,dual core four thread)
Memory: 8G
Java: Java8_64_171
DB: Mysql_5.6.40_64
Pool max size:8
Pool init size:8
Connection request timeout:8000ms

测试公平性
1: 请求超时均设置为8秒
2: 使用各连接池最新版本测试

截取一次并发测试结果

2018-07-17 11:31:13-[C3P0]Number of borrow:1000000(1000x1000),took time:35831322.388172ms,Avg time:35.831322ms
2018-07-17 11:31:40-[BCP]Number of borrow:1000000(1000x1000),took time:22698482.072511ms,Avg time:22.698482ms
2018-07-17 11:32:02-[Tomcat]Number of borrow:1000000(1000x1000),took time:18344215.79191ms,Avg time:18.344216ms
2018-07-17 11:32:28-[Druid]Number of borrow:1000000(1000x1000),took time:21892915.84237ms,Avg time:21.892916ms
2018-07-17 11:32:36-[Vibur]Number of borrow:1000000(1000x1000),took time:4323431.569657ms,Avg time:4.323432ms
2018-07-17 11:32:41-[HikariCP]Number of borrow:1000000(1000x1000),took time:435419.321189ms,Avg time:0.435419ms
2018-07-17 11:32:46-[BeeCP]Number of borrow:1000000(1000x1000),took time:1862103.108032ms,Avg time:1.862103ms

2018-07-17 11:34:11-[C3P0]Number of query:1000000(1000x1000),took time:77461561.836276ms,Avg time:77.461562ms
2018-07-17 11:35:14-[DBCP]Number of query:1000000(1000x1000),took time:58400804.16595ms,Avg time:58.400804ms
2018-07-17 11:36:06-[Tomcat]Number of query:1000000(1000x1000),took time:48781085.607402ms,Avg time:48.781086ms
2018-07-17 11:37:08-[Druid]Number of query:1000000(1000x1000),took time:56800036.252307ms,Avg time:56.800036ms
2018-07-17 11:37:46-[Vibur]Number of query:1000000(1000x1000),took time:34720008.829608ms,Avg time:34.720009ms
2018-07-17 11:38:25-[HikariCP]Number of query:1000000(1000x1000),took time:25666875.950517ms,Avg time:25.666876ms
2018-07-17 11:39:02-[BeeCP]Number of query:1000000(1000x1000),took time:33760379.143527ms,Avg time:33.760379ms

1: 并发取连接测试结果: HikariCP > BeeCP > Vibur > Tomcat > Druid > DBCP > C3P0
2: 并发查询测试结果来看: HikariCP > ( Vibur = BeeCP ) > Tomtcat > Druid > DBCP> C3P0
* 并发查询结果:HikariCP有少量的失败

HikariCP 号称“光“”是截止目前性能最快的连接池
Druid 阿里大师:温少作品,该作品主要目标用于监控, 并不是为追求高性能,该作品为中国明星开源项目,拥有超多粉丝,很牛,中国Java界骄傲!
BeeCP 微型连接池,23个Java文件,Jar包只有45KB, 远小于其他连接池, 运行只依赖JDK。
代码整理中,尽最大努力提交一份比较好的代码到github上。

奔跑的小鱼儿 2018-07-16
  • 打赏
  • 举报
回复
jdbc.type没设置吧

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧