GO map -1

GO 相關文章

github GO 程式


緣由: AIoT 討論

在想寫底層程式的人,是不是不習慣用 hash, key->value 找尋是用迴圈一個個查表比對key 欄位⋯
O(1) vs O(n) , 
大家有沒有什麼看法?

--

先用 GO 在 一般 PC 上跑,
假設 table 有 key 和 value 兩個欄位.

1. 用一般 search 方式

   (1) init
         這邊 key 值用公式計算只是方便寫驗證程式, 實際 key 值和 index 是無關係的.


   (2) find out value

  (3) test1


2. 用 map 方式

   (1) init


   (2) find val by map

  (3) test 2




3.  time measurement


4. 結果

    (1) 當 table 大小為 10 筆時, 抓第五筆, 兩個差不多
         (在這狀況下, Hash 值計算處理時間, 剛好 和 loop 迴圈逐一檢查五筆的時間應該是差不多的)

    (2) 當 table 大小為 90 時, 效能 map 方式可以比 逐一 search 快三倍

Find val - 1090
8.895157ms
Find val - 1090
1.28293ms


    下回進一步深入分析 GO 是如何用 hash 來實現 map

留言

熱門文章