登陆

章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?

admin 2019-12-14 318人围观 ,发现0个评论

导读:在实践开发中咱们常所熟知的数据库连接池有C3P0,DBCP、阿里Druid,等。但随着Springboot 2.0挑选HikariCP作为默许数据库连接池这一事情之后,HiKariCP作为一个后起之秀出现在群众的视界中,以其速度快,功用高级特色遭到许多人喜爱。下面是我收集到的一些关于HikariCP的材料,用于协助各位了解知道HiKariCP。

什么是HikariCP

HikariCP是由日本程序员开源的一个数据库连接池组件,是一个打着为“快速、简略、牢靠”标语的后起之秀。

HikariCP优势亮点在哪里?

1、高功用,图中与其他数据库连接池比较,HikariCP每秒的操作数远大于其他数据库连接池

2、安稳,当切换为HikariCP连接池后愈加安稳、

3、代码量少

那么为什么HikariCP会那么快?

  • 字节码精简,经过优化代码直到编译后的字节码最少,使得CPU缓存能够加载更多的程序代码。
  • 完结了一个无锁的调集类型(ConcurrentBag),来削减并发形成的资源竞赛。
  • 运用了自定义的数组类章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?型(FastList),相对与ArrayList极大地提升了功用。
  • 针对CPU的时刻片算法进行优化,尽可能在一个时刻片里边完结各种操作。

字节码精简

HikariCP利用了一个第三方的Java字节码修正类库Javassist来生成托付完结动态署理。经过运用Javassist生成动态署理,由于其速度更快且比较于JDK Proxy生成的字节码更少,使得CPU缓存能够加载更多的程序代码。

ConcurrentBag调集

ConcurrentBag是一个专门为连接池规划的lock-less调集,完结了比LinkedBlockingQueue、LinkedTransferQueue更好的并发功用。ConcurrentBag内部一起运用了ThreadLocal和CopyOnWriteArrayList来存储元素,其间CopyOnWriteArrayList是线程同享的。ConcurrentBag采用了queue-stealing的机制获取元素:首要测验从ThreadLocal中获取归于当时线程的元从来防止锁竞赛,假如没有可用元素则再次从同享的CopyOnWriteArrayList中获取。此外,ThreadLocal和CopyOnWriteArrayList在ConcurrentBag中都是成员变量,线程间不同享,防止了伪同享(false sharing)的发作。

FastList

运用FastList代替ArrayListFast章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?List是一个List接口的精简完结,只完结了接口中必要的几个办法。JDK ArrayList每次调用get()办法时都会进行rangeCheck查看索引是否越界,FastList的完结中去除了这一查看,只需确保索引合法那么rangeCheck就成为了不必要的核算开支(当然开支极小)。此外,HikariCP运用List来保存翻开的Statement,当Statement封闭或Connection封闭时需求将对应的Statement从List中移除。通常情况下,同一个Connection创建了多个Statement时,后翻开的Statement会先封闭。ArrayList的remove(Object)办法是从头开端遍历数组,而FastList章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?是从数组的尾部开端遍历,因而更为高效。

Hikar滕iCP 章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?与 Druid谁强谁弱?

信任许多人都会拿阿里开源数据库连接池Druid 与 HikariCP 进行比照,笔者整合了许多网友谈论之后总结出以下两点

  • hikariCP相关于Druid具有高功用得益于其最大极限的防止锁竞赛。
  • 而druid功用最为全面,集成了SQL监控,黑名单阻拦等功用,统计数据较为全面,具有杰出的扩展性。

最终,HikariCP是否便是连接池的最佳挑选?

上图是多个数据库连接池间的比照。笔者认为有更新更好的技能出现是功德,有竞赛才有前进。但是在技能选型上也不是一味地跟从大流盲目追捧。要结合实践的项目章鱼彩票网-后起之秀HikariCP为何会遭到多人的追捧?场景需求,在对行将使用的技能有必定的了解知道的基础上进行选型才是最优挑选。

感谢您的阅览,假如喜爱本文欢迎重视和转发,本头条号将坚持原创,继续共享IT技能知识。关于文章内容有其他主意或定见主张等,欢迎提出一起评论一起前进。

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP