| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jkiu
10年前发布

python的memcache模块连接速度测试

python的memcache模块测试,包含python-libmemcached,python-memcache和pylibmc。

三者区别:

python-libmemcached:是对libmemcached接口的封装,pypi上至今还是dev版,豆瓣以前对此修改使用。

pylibmc:也是对libmemcached接口的封装。

python-memcache:是纯python实现(听说有内存泄露)。

另外前两者没有遍历memcached的接口(get_stats函数实现不一样)


测试环境:

ubuntu  14 64

4 * Intel(R) Core(TM) i5-3470 CPU @ 3.20GH

8G RAM

客户端使用单连接。


测试脚本:

# -*- coding: utf-8 -*-    import time    test_vaule = '~!@#$%^&*(' * 10  num = 10000      def test_mem(mc):      t1 = time.clock()      for i in xrange(num):          mc.set(str(i), test_vaule)        t2 = time.clock()      for i in xrange(num):          mc.get(str(i))        t3 = time.clock()        print('%d set/s.' % (num / (t2 - t1)))      print('%d get/s.' % (num / (t3 - t2)))      if __name__ == '__main__':            import pylibmc          mc = pylibmc.client.Client(['127.0.0.1:11211'])          print('test for %s %s' % (pylibmc.__name__, pylibmc.__version__))          test_mem(mc)               import memcache          print('test for %s %s' % (memcache.__name__, memcache.__version__))          mc = memcache.Client(['127.0.0.1:11211'])          test_mem(mc)            import cmemcached          print('test for %s %s' % (cmemcached.__name__, cmemcached.VERSION))          mc = cmemcached.Client(['127.0.0.1:11211'])          test_mem(mc)

测试结果:

root@ubuntu:~/workspace# python test_mem.py   test for pylibmc 1.4.1  45783 set/s.  51379 get/s.  test for memcache 1.53  26295 set/s.  25974 get/s.  test for cmemcached 0.40  40135 set/s.  44864 get/s.


结果:

pylibmc 和 python-libmemcached相近,比python-memcache快1倍左右。

速度  pylibmc > python-libmemcached> python-memcache。

备注:当set值为python dict时, python-libmemcached>pylibmc

 本文由用户 jkiu 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1421498737890.html
Python开发 Memcache