hash演算法及效能比較

2021-09-26 18:44:38 字數 630 閱讀 8042

拉鍊法就是通過陣列和鍊錶共同組成key和許多value的集合來減少衝突。

鍊錶的缺點有兩個:第一,其長度太長時,會導致搜尋效能不好。第二,鍊錶在記憶體中的存放位址是不連續的,乙個快取行的大小是64b,而每乙個node可能佔16個位元組,如果是陣列,每次就可以連續的訪問4個node,但是對於鍊錶中的每乙個node,就只能單獨訪問,這樣會導致cache的利用率不好。

自然驅逐就是通過一維陣列來儲存value,當發生衝突時,可按照一定的規律來進行解決,比如每次+1等方式。

當要刪除乙個元素的時候,需要將同乙個key下的後續元素全部向前移動,來減少對其他key位置的占用問題。代價就會比較大。

這種方法就可以解決某個位置出現hash衝突的問題,但是只有兩個位置一旦發生多個衝突時就沒有辦法解決。於是也就有了布穀鳥hash,嗯。。。這個名字我也不知道對不對,畢竟不專業,嘎嘎嘎。

布穀鳥hash仍然有兩個hash函式,如果發生兩個位置都存在元素的情況下就會發生驅逐,就可以將後面的元素通過另乙個hash函式算出乙個位置進行存放。

可能出現環路問題,如果通過另乙個hash函式計算出的位置又回到了之前的位置,就可能出現環路問題。

redis memcache 效能比較

from redis和memcache非常像的,都是key,value的方式,將資料存放記憶體中。最近在學習redis,在網上看了一些這方面的資料,有三種觀點 1,redis讀寫記憶體比memcache快 2,memcache讀寫記憶體比redis快 3,memcache讀寫記憶體比redis快,但...

apache resin ngnix 效能比較

靜態頁面測試,靜態頁面包括css,js,img ab c 20 n 30 併發測試 高數值的也測過,結論一致 resin2.17 平均響應時間為0.521ms nginx 0.7.65 平均響應時間為1.042ms 少許幾次小於1.042 apache2.0 平均響應時間為最低1.042ms 在re...

tomcat效能比較

tomcat的四種基於http協議的connector效能比較 我們姑且把上面四種connector按照順序命名為 nio,http,pool,niop 為了不讓其他因素影響測試結果,我們只對乙個很簡單的jsp頁面進行測試,這個頁面僅僅是輸出乙個hello world。假設位址是 http tomc...