Posted on 2009-09-30 00:11
創意恒動力 閱讀(962)
評論(0) 編輯 收藏
不同方式的比較TC引擎,有利于開發高速的數據緩存
近日比較了一下TC中,HDB和BDB的速度,挺有意思的。
先介紹一下幾種存儲方式:
第一種:DBD,B+樹存儲算法,其中有不同key值得存儲,還有FIFO的存儲(例如相同key值方式)
第二種:HDB,Hash table存儲方式。
第三種:FDB,定長數組存儲
第四種:ADB,這種存儲方式參照HDB,但是它是存儲在內存上。
以下測試,均使一百萬條隨機數數據測試。(詳情請看代碼附件)
1、先來一下BDB引擎的插入時間:

2、BDB相同key值的存儲速度:

3、HDB引擎,不同key值得存儲速度:

4、FDB引擎,不同key值插入時間:

5、ADB引擎,插入時間:

從時間上看,HDB的存儲速度,在不同key值得存儲這一方面,略占優勢。
但是如果BDB使用了,相同key值存儲的話,優勢就很明顯。
看看表圖更清晰:

速度方面,HDB雖然略占優勢,但是,在文件大小方面,BDB一點都不爛,如果用戶需求不要太快而是要求節省空間的話,BDB絕對是不容置疑的選擇:

圖表比較清晰地表達了這點(以下數據,Y 軸單位為字節):

雖說硬盤常用作持久化,但是數據表明,充當短暫的讀寫緩存,分擔memcache的壓力,并不是沒可能的。
文章來源:
http://henry2009.javaeye.com/blog/480024(我地舊博客)