一、为何要用连接池----池化思想 空间换时间,实现对象复用,减少对象创建销毁所带来的系统开销 为什么用连接池, 因为连接的创建和销毁非常耗时,中间有个TCP/IP协议,要3次握手,4次挥手。 二、为何要使用HiKariCP?这要先从BoneCP说起: 原本有C3P0/DBCP这些成熟的数据库连接池,一直用的好好的,为什么又搞出一个BoneCP来?因为,传说中BoneCP在快速这个特点上做到了极致,官方数据是C3P0等的25倍左右。 HiKariCP是光的意思,作者可能是日本人,用光来表示cp速度之快。 HiKariCP的特征: 1.快速、简单、可靠、小而精、性能高。 2.SpringBoot中默认优先加载(添加了spring-jdbc依赖会自动配置HiKariCP) 优化点 1.字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码; 2.优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一; 3.自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描; 4.自定义集合类型(ConcurrentBag):提高并发读写的效率; 5.其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究(但没说具体怎么优化)。