SpringBoot2.0デフォルトの接続プール----ひかり

まず、デフォルトの接続プールがひかりのに設定されている理由として公式の理由をリリースしました:

 

ConcurrentBag:並行コレクションクラスは良く達成

同じ名前のC#クラスでの実装にConcurrentBag参照は、特別にLinkedBlockingQueue、LinkedTransferQueueより良い同時パフォーマンスを達成よりも、接続プールのコレクションロックレスのために設計されています。ConcurrentBagは、CopyOnWriteArrayListとスレッドで共有されている要素を格納するための内部とCopyOnWriteArrayListとThreadLocalの両方を使用します。まず、再び共有CopyOnWriteArrayListとから取得された使用可能な要素が存在しない場合、ロック競合を避けるためにThreadLocalから現在のスレッドに属する元素を取得しよう:要素を取得するためのキューを盗むメカニズムを使用してConcurrentBag。また、ThreadLocalのとCopyOnWriteArrayListとすべてのメンバ変数は、偽共有(偽シェアリング)が発生を回避する、ConcurrentBag内のスレッド間で共有されていません。 

クイックリストの代替のArrayListを使用します

クイックリストは、合理化されたインターフェイスのリストを達成するために必要なインタフェースを実現する唯一のいくつかのメソッドです。正当な指標は、その後rangeCheckが(もちろん、最小限のオーバーヘッド)の不要な計算オーバーヘッドとなるような方法であれば、このチェックに加えて、クイックリストを達成するときにJDKのArrayListは、各コールを取得する()のインデックスが範囲外であるかどうかrangeCheckチェックあろう。さらに、HikariCPは、LIST文を開く保持するために使用される、対応する声明リスト閉じたとき、または接続を閉じるから削除する必要があります。通常は、同じ接続で複数のステートメントを作成すると、ステートメントが閉じて開いています。アレイを介してスクラッチからのArrayList削除(Object)メソッド、及び横断クイックリストからアレイの端部、したがってより効率的。

 

比較するとドルイド:ドルイドは、データ検証アリを大量に持っていますが、HikariCPは、テストデータのような大規模な量なかったです。

 

 ひかりのspringbootプロジェクトの設定について

2.0デフォルトの接続プールがひかりので、親は、具体的依存性の増加を参照していないspringboot

 

 

おすすめ

転載: www.cnblogs.com/vegetableDD/p/11772789.html