前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UltraJSON——Python 的极速 JSON 编解码器

UltraJSON——Python 的极速 JSON 编解码器

作者头像
悟乙己
发布2019-05-26 19:55:52
1.1K0
发布2019-05-26 19:55:52
举报
文章被收录于专栏:素质云笔记素质云笔记

在 ESN,我们大量使用 JSON,Python 2.6 自带的那个太慢,所以我们后来使用 simplejson。今时今日 JavaScript 和 JSON 更广泛地使用了,所以我觉得可能这是一个值得我用 C 去优化的领域,而且也可以正明我宝刀未老。

UltraJSON

我花了一个周末来研究一下 JSON 编码,并把我结果称为 UltraJSON,从目前我做的初步的基准测试来看,他是我能找到的所有 JSON 编解码器中最快的(如果不是,那我可以把它优化得更快!)。

Python 绑定

其实 UltraJSON 并非只能用于特定语言,只是为了方便我的同事使用,我就实现了它的 Python 绑定,称为 ujson 模块。 更新:UltraJSON 现在可以在 PyPI 中找到了,包名叫 ujson,用 easy_install 或 pip 可以很方便地安装它,你懂的。

当前基准测试

64位 Linux 基准测试

Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) OS Version: Ubuntu 10.10 System Type: x64-based PC Processor: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz Total Physical Memory: 4096 MB Array with 256 utf-8 strings: ujson encode : 2874.54652 calls/sec simplejson encode : 1539.47999 calls/sec cjson encode : 132.33571 calls/sec ujson decode : 2072.09417 calls/sec cjson decode : 991.20903 calls/sec simplejson decode : 310.75309 calls/sec Medium complex object: ujson encode : 19001.01929 calls/sec simplejson encode : 3512.29205 calls/sec cjson encode : 3063.69959 calls/sec ujson decode : 12791.80993 calls/sec cjson decode : 8288.32916 calls/sec simplejson decode : 6640.22169 calls/sec Array with 256 strings: ujson encode : 40161.78453 calls/sec simplejson encode : 19301.40779 calls/sec cjson encode : 12337.13166 calls/sec ujson decode : 36944.81317 calls/sec cjson decode : 30187.40167 calls/sec simplejson decode : 25105.56562 calls/sec Array with 256 doubles: ujson encode : 6054.71950 calls/sec simplejson encode : 2912.44353 calls/sec cjson encode : 3539.51228 calls/sec ujson decode : 27794.29735 calls/sec cjson decode : 14892.38775 calls/sec simplejson decode : 14879.00070 calls/sec Array with 256 True values: ujson encode : 168086.95325 calls/sec simplejson encode : 49348.93309 calls/sec cjson encode : 67392.90623 calls/sec ujson decode : 139359.25968 calls/sec cjson decode : 82552.26652 calls/sec simplejson decode : 114998.51396 calls/sec Array with 256 dict{string, int} pairs: ujson encode : 24125.68837 calls/sec simplejson encode : 5751.74871 calls/sec cjson encode : 4735.65147 calls/sec ujson decode : 17176.70493 calls/sec cjson decode : 13420.93963 calls/sec simplejson decode : 9854.27352 calls/sec Dict with 256 arrays with 256 dict{string, int} pairs: ujson encode : 86.52449 calls/sec simplejson encode : 17.46117 calls/sec cjson encode : 18.31323 calls/sec ujson decode : 49.54660 calls/sec cjson decode : 38.34094 calls/sec simplejson decode : 28.18035 calls/sec

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011年06月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UltraJSON
  • Python 绑定
  • 当前基准测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档