1. 程式人生 > >提交訂單效能優化系列之003-測試阿里巴巴的druid資料來源

提交訂單效能優化系列之003-測試阿里巴巴的druid資料來源

概括總結

使用druid資料來源之後,相對於第002版自己隨手寫的資料庫,效能反而下降了8.49%。原因在於,002版是“隨手”寫的,因此功能非常簡陋,要什麼沒什麼,只能從記憶體中獲取連線,因此很快。而druid資料來源是一個工業級別的產品,它的內部做了大量的優化(比如多執行緒控制、效能監控等),這些優化的程式碼在執行的時候都是需要花時間的,因此相對就慢了一些。

003版本更新說明

pom.xml檔案中引入了新的jar包:

<!-- 阿里的druid資料庫連線工具 -->
<dependency>
    <groupId>com.alibaba</groupId
>
<artifactId>druid</artifactId> <version>1.1.10</version> </dependency>

它提供了一般的資料庫連線池工具都具備的功能,比如設定初始化連線數、最大連線數、最小空閒連線數等。但是它最大的賣點是它優秀的監控功能:哪些SQL執行次數最多?哪些SQL執行時間最長?等等之類的問題,它都幫你記錄了。可以參考這篇文章:Druid Monitor監控JavaSE和JavaWeb

003版本中,修改了“JdbcUtil003.java”類,提供了一個setDataSource

方法,以方便以後修改成其他的資料庫連線池:

/** 設定資料庫源 */
public static void setDataSource(DataSource dataSourceOut) {
    dataSource = dataSourceOut;
}

這個版本也做了一些其他的小修改,在這裡就不列舉。

測試結果

三個版本平均提交一個訂單的耗時情況如下:

001版本耗時(ms) 002版本耗時(ms) 003版本耗時(ms)
183 106 115

002版本相對於001版本效能提升了: (183 - 106) / 183 * 100% = 42.07%

003版本相對於001版本效能提升了: (183 - 115) / 183 * 100% = 37.15%

003版本相對於002版本效能下降了: (115 - 106) / 106 * 100% = 8.49%

【備註】:不同的機器上的測試結果會不一樣,以上測試結果僅供參考。

“最好的”資料庫連線池

imagepng

“最好的”這三個字還真是自信啊,反正其他的資料庫連線池都沒說過這種話~

衷心希望它能越做越好,畢竟我們公司是一直都在用它。

原始碼