ConcurrentHashMap 之效能演進

2021-08-08 06:41:30 字數 719 閱讀 5605

書接上文,為什麼concurrenthashmap 底層實現由之前的陣列加鍊表的結構演變為陣列加紅黑樹?下面我們來分析一下底層資料結構上的效能差異。

首先我們來看下o(n) 與 o(logn) 的效能差距:

以平衡二叉樹為例,父節點與子節點之間為乘 2的關係,在座標中如下圖所示:

以上為 x 2 座標系,那麼,此座標系與對數的關係如何?如下圖所示:

灰色數字則稱為對數,即:

藉此,我們可以知道對數與常數之間的關係,那麼,我們可以將資料結構中的線性表和樹效能消耗,簡單的理解為常量級與對數級,即o(n)與o(logn)。

通過本文就不難解釋,concurrenthashmap為何由之前jdk1.6的資料加鍊表的儲存結構到jdk1.7的segment(依舊是陣列加鍊表),最終演變為jdk1.8的陣列加鍊表加紅黑樹的儲存結構了。

《效能之巔》初識效能

效能是一門令人激動 富於變化的學科同時又充滿挑戰的學科。衡量效能乙個重要指標 延時 系統效能是對於整個系統進行研究,包括了所有的硬體元件和整個軟體棧。通用的軟體棧有哪些呢?包括作業系統 os 核心,資料庫和應用程式層。術語中的 全棧 有時候指的是程式應用環境,包含資料庫,應用程式,和 伺服器。效能通...

效能測試之效能優化篇

系統上線必會經歷測試階段,功能測試我們可以按照產品的設計原型去執行一條條測試用例來覆蓋產品功能點。但是在功能測試之外,如果乙個使用者介面層服務,我們還需要知道服務的效能指標以了解並評估這個服務在實際的生產環境中可以應對多大壓力,我們可以根據這個資料情況根據不用的場景時間去對應的增加機器節點或進行重構...

效能測試sysbench之IO效能測試

1.執行命令 sysbench test fileio threads 1 file total size 1000m file test mode rndrw prepare 準備進行隨機的讀取的檔案 sysbench test fileio threads 1 file total size 1...