python json高性能处理

网上一圈发现,python2里ujson评价最高,而python3里orjson评价不错

选了一个稍微有点尺寸的 json数据做了下试验


root@ubuntu:/home/yey/perftest# python jsonbench.py
json.loads 51582/sec
ujson.loads 202109/sec
json.dumps 97214/sec
ujson.dumps 187700/sec

ujson的loads是json的4倍, ujson的dumps是json的2倍,似乎是不错。

并且从网上的评价来看,ujson似乎是python2下的最佳选择了。

在我的场景中,我需要高性能的处理,为此我引入了pypy, 看上面的结果,我想当然的使用了pypy + ujson的组合,结果却不理想,研究发现一个惊人反转:pypy+ujson < python+json < python+ujson < pypy+json

root@ubuntu:/home/yey/perftest# pypy/bin/pypy jsonbench.py

json.loads 403308/sec
ujson.loads 42868/sec
json.dumps 210220/sec
ujson.dumps 20783/sec

结论,如果只需要loads, 那么最快的是pypy+json (40w/s), 其次python+ujson(20w/s), 再次 python+json(5w/s), pypy+ujson仅有 4w/s

如果只需要dumps,    pypy+json 21w/s, python+ujson 18w/s, python+json 9w/s, pypy+ujson 2w/s

所以:如果是python2下需要高性能处理json, 没有太复杂的转化的话,最优解是 pypy+json

当然pypy也有一些限制,比如说某些库并不支持pypy下运行,这些需要注意。

猜你喜欢

转载自www.cnblogs.com/yeyong/p/11855174.html