Posted on 2009-03-06 12:36
dennis 阅读(2030)
评论(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下的测试数据等晚上回家补上。