Posted on 2009-03-06 12:36
dennis 閱讀(2035)
評論(0) 編輯 收藏 所屬分類:
java 、
my open-source
測試1:開N個線程讀寫刪各10000次,key是String,Value是Integer,數據單位皆為TPS
線程數 |
set |
get |
delete
|
|
xmemcached |
spymemcached |
xmemcached |
spymemcached
|
xmemcached |
spymemcached
|
1 |
3368 |
3047 |
3422 |
3232 |
3787 |
3404 |
10 |
12307 |
11742 |
15274 |
12623 |
13473 |
13473 |
50 |
22115 |
23021 |
30769 |
22630 |
24483 |
23222 |
100 |
22448 |
25467 |
32569 |
24105 |
25538 |
28119 |
200 |
24187 |
26165 |
35320 |
21379 |
26683 |
28181 |
500 |
24623 |
28810 |
36955 |
14328 |
27609 |
29789 |

觀察下結果,明顯的一點是xmemcached的get比之spyememcached快得多,考慮到memcached是作為緩存使用,這一點很重要。在set、delete上面仍然比spymemcached稍有不如,但是差距已經很小。
測試2:開N個線程讀寫各100次,key是String,Value是100個元素的map(map的key和value分別是String和一個自定義類NameClass),memcached內存加大,防止lru起作用。
線程數 |
set |
get |
|
xmemcached |
spymemcached |
xmemcached |
spymemcached
|
1 |
492 |
377 |
581 |
531 |
10 |
1362 |
84 |
831 |
753 |
30 |
1536 |
66 |
1015 |
872 |
50 |
1608 |
68 |
1126 |
1084 |
100 |
1576 |
67 |
989 |
1347 |

觀察數據結果,難以理解的是spymemcached在寫集合方面竟然如此低效,通過jprofiler觀察兩者的CPU占用,最大頭的都是序列化自定義對象;不過我昨天在ubuntu下開發xmemcached的時候隨手測過,spymemcached寫集合并沒有在windows下這么慢。
以上測試數據使用的memcached是2.2版本,xmemcached是0.6版本,系統是windows xp,AMD雙核2G內存,memcached是跑在局域網內的服務器上,版本是1.2.2。linux下的測試數據等晚上回家補上。