Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import pickle
- import msgpack
- TEST_REDIS = False
- if TEST_REDIS:
- import redis
- rconn = redis.StrictRedis()
- dataset = [(('key:%d' % i), {'a': 1, 'b': list(range(100)), 'c': ('z' * 25)}) for i in range(1000000)]
- def test_redis(serialize):
- if not TEST_REDIS:
- return
- rconn.flushall()
- for k, v in dataset:
- rconn.set(k, serialize(v))
- size = int(rconn.info()['used_memory'])
- print('%.2f MB' % (size / 1024 / 1024))
- data1 = [1, 2, True, False, 'abcd']
- data2 = dict((i, str(i) * 10) for i in range(20000))
- print('pickle')
- get_ipython().magic('timeit s = pickle.dumps(data1, protocol=-1); pickle.loads(s)')
- get_ipython().magic('timeit s = pickle.dumps(data2, protocol=-1); pickle.loads(s)')
- test_redis(pickle.dumps)
- print('json')
- get_ipython().magic('timeit s = json.dumps(data1); json.loads(s)')
- get_ipython().magic('timeit s = json.dumps(data2); json.loads(s)')
- test_redis(json.dumps)
- print('msgpack')
- get_ipython().magic('timeit s = msgpack.packb(data1); msgpack.unpackb(s)')
- get_ipython().magic('timeit s = msgpack.packb(data2); msgpack.unpackb(s)')
- test_redis(msgpack.dumps)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement