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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!