3

在优化一个网站时,我发现,QuerySets 的酸洗最终成为缓存的瓶颈,无论你的代码多么聪明,在 1-2 秒的时间内解开相对较大的 QS 都会浪费所有的努力。
有人遇到过这个吗?

4

2 回答 2

3

如果您目前只使用 pickle,我是否可以推荐cPickle,据称它的速度可以提高 1000 倍。

于 2013-05-18T19:13:22.677 回答
0

超json来救援!

In [1]: from string import letters

In [3]: import ujson

In [5]: import cPickle as pickle

In [7]: import random

In [8]: def random_string(n=10): return ''.join([random.choice(letters) for _ in xrange(n)])

In [9]: DATA = {random_string(): list(range(1000)) for _ in xrange(1000)}

In [12]: %timeit -r 3 -n 100 ujson.dumps(DATA)
100 loops, best of 3: 89.2

In [13]: %timeit -r 3 -n 100 pickle.dumps(DATA)
100 loops, best of 3: 285 ms per loop
于 2014-02-13T11:22:35.850 回答