一个比 Druid 快几倍的数据库连接池

一个比 Druid 快几倍的数据库连接池

首先,看下面这张截图。

一个比 Druid 快几倍的数据库连接池

                                                        (图片来源于HikariCP官网)

这张图来自于HikariCP的官方github,是HikariCP与其他传统连接池的连接周期与执行计划生成周期的对比图,是不是感觉很突兀啊,没错,最长那个就是HikariCP,连接周期是成c3p0的200倍,dbcp2的50倍,一眼望去HikariCP的优势太明显了,其他连接池可谓全军覆没。以至于后来BoneCP的作者都放弃了维护,推荐大家使用HikariCP。另外,springBoot2.0把HikariCP作为了默认数据库连接池。

HikariCP是日本人开发的一款连接池,Hikari来自日文,是“光“的意思,这个产品的口号是:快速、简单、可靠。试图打造一个“零开销”的生产就绪JDBC连接池。

到这里,想必大家都好奇HikariCP为什么这么快呢?这么牛呢?

其实HikariCP官方github也给出了原因(如下截图)

(http://h5ip.cn/ASBy)

一个比 Druid 快几倍的数据库连接池

                                                 图片来源于HikariCP官方github)

上面内容翻译总结如下:

1.字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;

2.优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码;

3.自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描;

4.自定义集合类型(ConcurrentBag):提高并发读写的效率;

5.其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究。

虽然性能很牛逼,但是用法和其他数据库连接池还是一样的,使用细节可参考官网。

一个比 Druid 快几倍的数据库连接池

 

欢迎大家加入Java高级架构/互联网(严禁培训机构、广告群,最干净的技术交流群):微信号:1083683150(备注:技术群或者4000G架构师资源)

微信平台本人收集个大量资源(4000G架构师资源,1000G大数据资源),只做分享,欢迎大家关注获取,保证免费,非任何机构

更多精彩请扫码关注微信公众号—— 名称:java版web项目 id :java_project

一个比 Druid 快几倍的数据库连接池