一个比 c3p0 快200倍的数据库连接池

首先,看下面这张截图。

(图片来源于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)

(图片来源于HikariCP官方github)

上面内容翻译总结如下:

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

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

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

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

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

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

正文结束

猜你喜欢

转载自blog.csdn.net/Dome_/article/details/89788485