python的memcache模块连接速度测试
程序员文章站
2024-02-12 13:31:28
...
三者区别:
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 = '[email protected]#$%^&*(' * 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)
测试结果:
[email protected]:~/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
转载于:https://my.oschina.net/toil/blog/368619
推荐阅读
-
python的memcache模块连接速度测试
-
测试python计算MD5和CRC的速度
-
python单元测试模块unittest的接口测试总结
-
Python的SQLalchemy模块连接与操作MySQL的基础示例
-
Python的SQLalchemy模块连接与操作MySQL的基础示例
-
python 之 数据库(多表查询之连接查询、子查询、pymysql模块的使用)
-
python中常用的各种数据库操作模块和连接实例
-
解决python通过cx_Oracle模块连接Oracle乱码的问题
-
Python中的测试模块unittest和doctest的使用教程
-
pip/anaconda修改镜像源,加快python模块安装速度的操作