为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用

 我来答
35...2@qq.com
2016-09-23 · TA获得超过155个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:181万
展开全部
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉大圆其他连滚棚塌接池。
为何要使用HiKariCP?这要先从BoneCP说起:
什么?不是有C3P0/DBCP这些成熟的数据库连接池吗?一直用的好好的,为什么又搞出一个BoneCP来?因为,传说中BoneCP在快速这个特点上做到了极致,官方数据是C3P0等的25倍左右。不相信?其实我也不怎么信。可是,有图有真相啊(图片来自BoneCP官网:http://jolbox.com/benchmarks.html):

而且,网上对于BoneCP是好评如潮啊,推荐的文章一搜一大堆。
然而,上Maven Repository网站(http://mvnrepository.com/artifact/com.jolbox/bonecp)查找有没有最新版本的时候,你会发现最新的是2013年10月份的(这么久没新版本出来了?)。于是,再去BoneCP的Githut(https://github.com/wwadge/bonecp)上看看最近有没有提交代码。却发现,BoneCP的作者对于这个项目貌似已经心灰意冷,说是要让步给HikariCP了(有图有真相):

……什么?又来一个CP?……什么是Hikari?
Hikari来自日文,是“光”和袜(阳光的光,不是光秃秃的光)的意思。作者估计是为了借助这个词来暗示这个CP速度飞快。不知作者是不是日本人,不过日本也有很多优秀的码农,听说比特币据说日本人搞出来的。。。
这个产品的口号是“快速、简单、可靠”。实际情况跟这个口号真的匹配吗?又是有图有真相(Benchmarks又来了):

这个图,也间接地、再一次地证明了boneCP比c3p0强大很多,当然,跟“光”比起来,又弱了不少啊。
那么,这么好的P是怎么做到的呢?官网详细地说明了HikariCP所做的一些优化,总结如下:
字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;
优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一;
自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描;
自定义集合类型(ConcurrentBag):提高并发读写的效率;
其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究(但没说具体怎么优化)。
很多优化的对比都是针对BoneCP的……哈哈。
(参考文章:https://github.com/brettwooldridge/HikariCP/wiki/Down-the-Rabbit-Hole
几个连接池的代码量对比(代码量越少,一般意味着执行效率越高、发生bug的可能性越低):
匿名用户
2017-08-20
展开全部
所谓“号称”,就表示可能不是真的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kiss璀璨青春
2016-09-23 · TA获得超过360个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:114万
展开全部
我本来准备粘贴一篇的,但是百度了下相关资料及教程实在太多,故此建议使用百度知道前先学会使用百度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java老大哥
2017-09-28
知道答主
回答量:10
采纳率:50%
帮助的人:2.4万
展开全部
HiKariCP是数据库连接池的一个燃宽后起之秀,号称或埋性能最好,可皮团亮以完美地PK掉其他连接池。
希望可以帮到你:http://blog.csdn.net/clementad/article/details/46928621
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式