1.1 测试环境:

操作系统:windows xp sp3
数据库:mysql 5.1

1.2 测试条件:

initialSize=30;
maxSize=200;
minSize=30;
其余参数为默认值;

1.3 测试代码:

利用JAVA代码模拟多线程对这三种数据库连接池进行测试,通过花费的时间判断效率
DBTest.java:
public class DBTest implements Runnable /*extends Thread*/ {
public long date1=0;
private static Proxool proxool;
public static int count = 0;
public static void main(String[] args) throws Exception {
//DBCP.init();
//C3P0.init();
//proxool = Proxool.getInstance();
BoneCPConn.init();
DBTest test = new DBTest();
test.startup();
}

public void startup() {
for (int i = 0; i <5; i++) {
Thread thread = new Thread(this);
thread.start();
}
}

public void run() {
if(date1==0)
{
date1 = System.currentTimeMillis();
System.out.println(date1);
}
for(int i=0 ; i<10 ; i++){
try {
//Connection conn = DBCP.getConnection();
// Connection conn = C3P0.getConnection();
//Connection conn =proxool.getConnection();
Connection conn = BoneCPConn.getConnection();
if (conn != null) {
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from user where id=1");
while (rs.next()) {
String username = rs.getString(2);
System.out.println(username);
}
rs.close();
statement.close();
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
count++;
if(count==5)
{
long date2 = System.currentTimeMillis();
System.out.println(date2);
System.out.println("运行完毕!耗时为:" + (date2 - date1) + "ms");
}
}
}
4.3.1 模拟5个线程循环10次并发访问数据库
DBCP用时1181ms
C3P0用时860ms
Proxool用时1563ms
BoneCP用时31ms
4.3.2 模拟10个线程循环10次并发访问数据库
DBCP用时1188ms
C3P0用时953ms
Proxool用时1625ms
BoneCP用时63ms
4.3.3 模拟20个线程循环10次并发访问数据库
DBCP用时1204ms
C3P0用时1000ms
Proxool用时1640ms
BoneCP用时110ms
4.3.4 模拟30个线程循环10次并发访问数据库
DBCP用时1250ms
C3P0用时1047ms
Proxool用时1657ms
BoneCP用时156ms
4.3.5 模拟50个线程循环10次并发访问数据库
DBCP用时1406ms
C3P0用时1343ms
Proxool用时1843ms
BoneCP用时172ms
4.3.6 模拟100个线程循环10次并发访问数据库
DBCP用时1641ms
C3P0用时2703ms
Proxool用时2031ms
BoneCP用时532ms
4.3.7 模拟200个线程循环10次并发访问数据库
DBCP用时2093ms
C3P0用时4891ms
Proxool用时2406ms
BoneCP用时936ms
4.3.8 模拟500个线程循环10次并发访问数据库
DBCP用时3219ms
C3P0用时11703ms
Proxool用时3343ms
BoneCP用时1922ms
4.3.9 模拟800个线程循环10次并发访问数据库
DBCP用时4688ms
C3P0用时12063ms
Proxool用时4141ms
BoneCP用时2859ms
4.3.10 模拟1000个线程循环10次并发访问数据库
DBCP用时5187ms
C3P0用时12563ms
Proxool用时4703ms
BoneCP用时3610ms
4.3.11 模拟3000个线程循环10次并发访问数据库
DBCP用时14094ms
C3P0用时16297ms
Proxool用时11344ms
BoneCP用时11391ms
4.3.12 模拟5000个线程循环10次并发访问数据库
DBCP用时23610ms
C3P0用时22032ms
Proxool用时20125ms
BoneCP用时17125ms

4.4测试结果分析:

BoneCP一直保持性能最佳

4.5 测试结论

通过对四种数据库连接池的性能测试发现,BoneCP的性能明显优于其它三种.

c3p0、dbcp、proxool、BoneCP比较的更多相关文章

  1. Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架数据库连接池比较(c3p0,dbcp和proxool,Bo ...

  2. 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)

    主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.BoneCP.Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDB ...

  3. DBCP、C3P0、Proxool 、 BoneCP开源连接池的比《转》

     简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等待时 ...

  4. 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较

    简介 项目主页 使用评价  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 http://homepages.nild ...

  5. (转载)DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较

    原文链接: http://blog.csdn.net/miclung/article/details/7231553    简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta ...

  6. jdbc(1)(三)DBCP、C3P0、Proxool 、 BoneCP开源连接池的简介

     简介          使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连 ...

  7. 160629、 DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较

       简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等 ...

  8. c3p0,dbcp和proxool

    关于c3p0.dbcp和proxool,之类的比较,配置在网上有很多的文章,我这边就不浪费大家的时间了,主要讲下我用过这三个之后的体会. dbcp:框架以前使用的是dbcp,网上说,有很多BUG,至少 ...

  9. 主流数据库连接池性能比较 hikari druid c3p0 dbcp jdbc

    背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 . NOTE: 本文所有测试均是MySQL库 测试结论 1:性能方面 hikariCP> ...

  10. 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

    https://blog.csdn.net/qq_31125793/article/details/51241943 背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推 ...

随机推荐

  1. CentOs 安装 swftools

    一 下载安装包 #wget http://www.swftools.org/swftools-0.9.1.tar.gz 二 安装相关依赖库 #yum install gcc* automake zli ...

  2. python开发学习-day16(Django框架初识)

    s12-20160507-day16 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  3. spring boot配置文件中 spring.mvc.static-path-pattern 配置项

    spring boot项目中的静态资源文件存放在static文件下面,当通过浏览器访问这些静态文件时,发现必须要添加static作为前缀才能访问,折腾了一番后发现,这个前缀跟 spring.mvc.s ...

  4. LoadRunner WebTours无法显示页面

  5. Java人员正确使用 IntelliJ IDEA的方式

    原文: http://tengj.top/2017/02/22/idea1-1/ 作者: 嘟嘟MD 前言 博主是Java开发人员,以前一直都用myeclipse来开发的,说实话感觉myeclipse毫 ...

  6. 模拟界面请求到web服务器

    客户端 package com.lsw.client; import java.io.*; import java.net.*; import java.util.*; public class HT ...

  7. 预备作业02 : 体会做中学(Learning By Doing)

    1.你有什么技能比大多人(超过班级90%以上)更好? 如果说不算上玩玻璃球在诸如此类不登大雅之堂的技能,我想我是没有什么比大多数人更好的.我的兴趣还算广泛,但很多东西也只是学到了皮毛而已. 在我上初中 ...

  8. HDU - 5999 The Third Cup is Free 贪心 简单题

    The Third Cup is Free Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  9. Linux信号量同步共享内存实验.

    Linux信号量同步共享内存实验. Linux信号量同步共享内存实验. 简述 程序流程 信号量和共享内存的系统函数 信号量系统函数及接口 共享内存系统函数及接口 写程序 读程序 简述 本文主要内容是自 ...

  10. 浅谈 Java 中的枚举

    枚举也就是一一列举,常用来表示那些可以明确范围的集合,比方说性别,季节,星期,月份等. 在 JDK 1.5 才出现枚举类,在没有出现枚举类之前,我们要表示几个确定的值通常会使用常量来表示,形如 pub ...