HikariCP 的介紹

元亨利貞發表於2024-01-04

介紹:

HikariCP 是一個高效能的 JDBC 連線池元件,號稱效能最好的後起之秀,是一個基於BoneCP做了不少的改進和最佳化的高效能JDBC連線池。其作者還有產出了另外一個開源作品HikariJSON——高效能的JSON解析器。程式碼體積更是少的可憐,130kb。Spring Boot 2都已經宣佈支援了該元件,由之前的Tomcat換成HikariCP。其效能遠高於c3p0、tomcat等連線池,以致後來BoneCP作者都放棄了維護,在Github專案主頁推薦大家使用HikariCP。

優點:

HikariCP 在效能上做了很多最佳化,例如:

位元組碼精簡:最佳化程式碼,直到編譯後的位元組碼最少,這樣,CPU快取可以載入更多的程式程式碼。

最佳化代理和攔截器:減少程式碼,例如HikariCP的Statement proxy只有100行程式碼,只有BoneCP的十分之一。

自定義陣列型別(FastStatementList)代替ArrayList:避免每次get ()呼叫都要進行range check,避免呼叫remove ()時的從頭到尾的掃描,相對與ArrayList極大地提升了效能。

自定義集合型別(ConcurrentBag):支援快速插入和刪除,特別是在同一執行緒既新增又刪除項時,提高併發讀寫的效率。

針對CPU的時間片演算法進行最佳化:儘可能在一個時間片裡面完成各種操作。

針對連線中斷的情況:比其他CP響應時間上有了極好的最佳化,響應時間為5S,會丟擲SqlException異常,並且後續的getConnection ()可以正常進行。

關於Connection的操作:另外在Java程式碼中,很多都是在使用完之後

直接關閉連線,以前都是從頭到尾遍歷,來關閉對應的Connection,而HikariCP則是從尾部對Connection集合進行掃描,整體上來說,從尾部開始的效能更好一些。

文章推薦:

https://blog.csdn.net/qq_25027457/article/details/124724042

來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024433/viewspace-3002662/,如需轉載,請註明出處,否則將追究法律責任。