1. 程式人生 > >c3p0、dbcp、proxool、BoneCP比較

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 {
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的效能明顯優於其它三種.

相關推薦

c3p0dbcpproxool的優缺點比較及配置

 <!-- 配置c3p0資料來源 -->     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">         <property 

Hibernate的三種連線池設定C3P0dbcpProxool

<!-- JDBC驅動程式 --> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property><property name="connec

Spring學習-24:Spring中的JDBC Template(JDBC模板):預設連線池DBCP連線池C3P0池的配置

上一講中,我們編寫的測試類如下所示: package com.js.demo1; import org.junit.Test; import org.springframework.jdbc.core.JdbcTemplate; import org.springfram

c3p0dbcpproxoolBoneCP比較

1.1 測試環境:作業系統:windows xp sp3資料庫:mysql 5.11.2 測試條件:initialSize=30;maxSize=200;minSize=30;其餘引數為預設值;1.3 測試程式碼:利用JAVA程式碼模擬多執行緒對這三種資料庫連線池進行測試,

DBCPC3P0Proxool BoneCP開源連線池的比較

 acquireIncrement: 當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。Default: 3fatal-sql-exception : 它是一個逗號分割的資訊片段.當一個SQL異常發生時,他的異常資訊將與這個資訊片段進行比較.如果在片段中存在,那麼這個異常將被認為是個致命錯誤 (Fata

DruidBoneCPDBCPC3P0等主流資料庫對比

關鍵功能 Druid BoneCP DBCP C3P0 Proxool JBoss LRU 是 否 是 否 是 是 PSCache 是 是 是 是 否 是 PSCache-Oracle-Optimized 是 否 否 否 否 否 ExceptionSorter 是 否 否

JDBCC3P0DBCPDruid 資料來源連線池使用的對比總結.md

Java的資料庫連線效能對比 JDBC: jdbc - 全名是 Java data base connectivity;翻譯為 Java資料庫連線 它是一個面向物件的程式介面(API);可以通過它訪問到各類的 關係型資料庫[注意:關係型資料庫] 它不屬於某一個

C3P0DBCP連線池

C3P0連線池 C3P0是一個開源的JDBC連線池,它實現了資料來源和JNDI繫結,支援JDBC3規範和JDBC2的標準擴充套件。目前使用它的有Hibernate,Spring等。 在src下建立c3p0-config.xml檔案,進行如下配置 &l

JNDIDBCPC3P0三種資料來源的簡單使用

首先無論使用哪種資料來源都需要使用資料庫連線,就要匯入相對應的資料庫連線的jar,這裡使用mysql資料庫,所以匯入: mysql-connector-java-5.1.43-bin.jar 1.JN

c3p0dbcptomcat jdbc pool 連線池區別(推薦使用jdbc pool)

檢視資料,得知dbcp和c3p0都是單執行緒的,在高併發的環境下效能會非常低下, 決定換用tomcat自帶的jdbc-pool,關於jdbc-pool的專案介紹。 <!-- class="org.apache.tomcat.dbcp.dbcp.BasicD

Java資料庫連線池比較c3p0,dbcp,proxoolBoneCP

詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架資料庫連線池比較(c3p0,dbcp和proxool,BoneC) 現在常用的開源資料連線池主要有c3p0,dbcp,proxool

三大連線池 c3p0dbcpdruid 的區別詳解

一、下載地址DBCPc3p0Druid二、資料庫連線池原理連線池基本的思想是在系統初始化的時候,將資料庫連線作為物件儲存在記憶體中,當用戶需要訪問資料庫時,並非建立一個新的連線,而是從連線池中取出一個已建立的空閒連線物件。使用完畢後,使用者也並非將連線關閉,而是將連線放回連線池中,以供下一個請求訪問使用。而連

c3p0dbcpdruid三大連接池對比

blank info 對比 mage c3p0 tails targe 技術分享 clas 轉: c3p0、dbcp、druid三大連接池對比c3p0、dbcp、druid三大連接池對比

一個比較變態的js傳值,Query的bindajax閉包上下文傳值

pre query dna input primary false function and indexof var getIDNameList = function (list, selected, text, btn, actionUrl, defaultKey,

KmeansKmeans++和KNN算法比較

aps 公式 算法思路 相互 png 非監督學習 位置 ide base K-Means介紹 K-means算法是聚類分析中使用最廣泛的算法之中的一個。它把n個對象依據他們的屬性分為k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相߬

章節號比較排序(A.1B.2.1C.4)

java 章節號 排序 private static int compareSerialNum(String str1,String str2){ if(str1.equals(str2)){ return 0; } if(!str1.contains(".")&

python性能優化內存優化內存泄露;與其他語音比較效率如何?

語音 gpo .org .html www. com log .cn amp 1、內存泄露:http://www.cnblogs.com/xybaby/p/7491656.html 2、內存優化:http://www.cnblogs.com/xybaby/p/7488216

Linux中關於別名內部命令hash緩存以及外部命令(硬盤裏路徑)的優先級比較

計算機 for 定義 hist -h linu 指定 history 我們 我們都知道:計算機中文件的讀取 內存>緩存>硬盤linux中別名是為了簡化某些命令的輸入,在終端輸入alias可以查詢系統存在的別名,用戶也可以自定義別名,具體為:alias 別名=‘命

windows server版本比較:數據中心版2016 2012 2008部署性價比等

服務器 win 有關 企業 行數 服務 比較 需要 2個 一、授權數量終身永久授權、無限制虛擬機(數據中心版)2個虛擬機(標準版)自動授權數量:虛擬化實例、虛擬機的運行數量“支持虛擬化實例,是從授權層面講的,虛擬化裏運行的系統也是需要授權的。標準版實際可運行的虛擬機數量與服

向量和矩陣的各種範數比較(1範數2範數無窮範數等等

log 100% text UNC -s base center hrl 求導 向量和矩陣的各種範數比較(1範數、2範數、無窮範數等等範數 norm 矩陣 向量 一、向量的範數 首先定義一個向量為:a=[-5,6,8, -10] 1.1 向量的1範數