c3p0、dbcp、proxool、BoneCP比较
来源:互联网 发布:淘宝3c标志图片 编辑:程序博客网 时间:2024/05/21 10:09
1 c3p0、dbcp、proxool、BoneCP比较
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的性能明显优于其它三种.
测试包下载:ConnectionPool.rar (3.3 MB)
- c3p0、dbcp、proxool、BoneCP比较
- c3p0、dbcp、proxool、BoneCP比较
- DBCP,C3P0,Proxool,BoneCP性能比较
- DBCP,C3P0,Proxool,BoneCP性能比较
- dbcp,c3p0,proxool,bonecp连接池比较
- DBCP,C3P0,Proxool,BoneCP
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- 开源DBCP,C3P0,Proxool,BoneCP连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- JDBC连接池的比较:DBCP、C3P0、Proxool 、 BoneCP
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
- 正则表达式
- c 指针相关
- iOS废弃的API:NS_AVAILABEL_IOS and NS_DEPRECATED_IOS and __attribute__((deprecated))
- 捡火柴的Nova君(n个线段相交问题)
- NSString与Unicode
- c3p0、dbcp、proxool、BoneCP比较
- @@ROWCOUNT 含义
- Lighty的“自适应”树
- MAC 编译生成万能播放器
- BoneCP数据库连接池性能上的缺点?
- Linux内核的malloc实现(Oracle的cache buffer影子)
- 为什么 BoneCP 连接池的性能这么高呢?
- JUnit编写单元测试代码注意点小结
- json常用的一些知识