从BoneCP到HikariCP

今天笔者本想更新一下项目中使用到的BoneCP版本的。却无意发现jolbox网站打不开了。起初以为是被墙掉了,经过一番查找,居然在BoneCP的Github站看到了如下的一段话:

BoneCP的作者不知何时修改了简述。(ps:红色框中的部分意思:虽然BoneCP性能优于老旧的C3PO和DBCP连接池,但是现在应该被舍弃了,以迎接HikariCP)

作者词语之间充满了悲凉之感,好比当年的少年侠客,风流倜傥,如今已是迟暮之年,不得不退出江湖,何其悲凉。

在笔者胡乱感伤一通过后,那么问题就来了。

HikariCP是虾米?

HikariCP是一个高效的数据库连接池。

One Connection Cycle is defined as singleDataSource.getConnection()/Connection.close().

In Unconstrained benchmark, connections > threads.

In Constrained benchmark, threads > connections (2:1).

One Statement Cycle is defined as singleConnection.prepareStatement(),Statement.execute(),Statement.close().

1 Versions: HikariCP 2.1.0, BoneCP 0.8.0, Tomcat 8.0.9, Vibur 1.2.0, C3P0 0.9.5-pre8, Java 8u20

2 Java options: -server -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xmx512m

从HikariCP网站给出的对比图来看。其性能相比于BoneCP有了质的变化,革命性的变更。

笔者因为使用了Spring框架。所以更换使用HikariCP相当简单,只要将原本BoneCP的配置信息修改一下就好了。详细见下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Ps:笔者也是首次使用HikariCP类库。具体的性能和优越性暂时还不好下定论。但是相信HikariCP开发组能发表这样的对比图,想来未必是空穴来风,暂时使用一下,过段时间再来完善性能是否如图表所示。持续关注中。

Maven :

【JDK1.8】

1

2 com.zaxxer

3 HikariCP

4 2.1.0

5 compile

6

【JDK1.6和1.7】:

1

2 com.zaxxer

3 HikariCP-java6

4 2.1.0

5 compile

6

作者:TinyZ出处:http://www.cnblogs.com/zou90512/

关于作者:从事于网络游戏服务端开发(JAVA)。喜欢接触和了解新技术。通过不断探索学习,提升自身价值。记录经验分享。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接

如有问题,可以通过 zou90512@126.com

java 革命_JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)相关推荐

  1. java Datasource,数据库连接池

    java Datasource,数据库连接池 目前有多重方式创建数据库连接池:JNDI,DBCP,C3P0等 为什么需要连接池: 使用java API DriverManager.getConnect ...

  2. java 简易版本数据库连接池

    写了个 Java数据库连接池,具备基本的功能点: 1.对池中活动连接的重用. 2.池满时的适时等待. 3.对空闲连接的适时关闭. 抛砖引玉,走过路过,不吝赐教. DBConnection.java如下 ...

  3. java 数据库连接池 实例_java数据库连接池和数据库连接示例

    import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mc ...

  4. java 连接池技术_java数据库连接池技术原理(浅析)

    在执行数据库SQL语句时,我们先要进行数据连接:而每次创建新的数据库的连接要消耗大量的资源,这样,大家就想出了数据库连接池技术.它的原理是,在运行过程中,同时打开着一定数量的数据库连接,形成数据连接池 ...

  5. java连接mysql数据库连接池_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...

    一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: mysql mysql-connector-java 5.1.48 ...

  6. java 连接池配置_java数据库连接池配置的几种方式

    关于java数据库连接池配置的几种方式 今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下 ...

  7. java mysql连接池配置_Java数据库连接池的几种配置方法(以MySQL数据库为例)

    一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1.方法一:在WebRoot下面建文件夹META-INF,里面建 ...

  8. java中常用的连接池_java数据库连接池

    编写标准的数据源(规范) Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口.这样应用程序可以方便的切换不同厂商的连接池! 常见的 ...

  9. java数据库连接的作用_java数据库连接池的作用

    1.什么是连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个: 释放空闲时间超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接 ...

最新文章

  1. 6_jfoenix_自定义舞台,JFXSlider
  2. 一个Web Project引用多个Java Project在Eclipse下的配置--转载
  3. UNITY C#内存泄漏
  4. 【easy】206. Reverse Linked List 链表反转
  5. php数据存储mysql_php – 在MySQL中存储路线数据的最佳方式
  6. k均值的损失函数_一种基于均值不等式的Listwise损失函数
  7. 案例 月工作列表 c# 1614192274
  8. CentOS 7.4创建普通用户赋予登录权限
  9. Ubuntu 14 如何解压 .zip、.rar 文件
  10. 谈一谈python中的魔法变量*args和**kwargs
  11. python语言编程中的保留字_Python入门系列5-保留字和标识符
  12. 微信小程序调用百度云H5人脸识别
  13. EDA实验:数字频率计(FREQ)设计(VHDL)
  14. python多线程爬取图虫网图片
  15. Lumion和Enscape渲染器有什么区别?哪个适合你
  16. 动画--easeljs中的movieClip控件示例?
  17. 声音内容识别 linux,语音支付,银行的声纹识别与声纹鉴定
  18. 信息学奥赛一本通-2069:【例2.12 】糖果游戏
  19. 移动办公模式下的业务 微易聊微信管理系统作用显著!
  20. MATLAB 设置坐标轴的字体为斜体

热门文章

  1. 基于JSON的高级AJAX开发技术
  2. sonarqube通过sonarqube maven插件分析maven工程使用的mvn命令示例
  3. Scala多线程:使用线程池Executors提交Runnable任务代码示例
  4. Linux系统管理命令:date、free、ps、du、kill、uname
  5. RabbitMQ消费消息幂等性问题
  6. Scala中的trait特质
  7. Junit测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
  8. 查看java源码时出现class文件而不是java文件,可能是因为java的安装路径下没有src.zip文件而是javafx-src.zip文件
  9. php xml expat,PHP Expat :XML的解析器
  10. setfacl 权限导出_linux学习-setfacl设置特定目录用户权限