Python JSON性能测试与Simplejson对比

发表于:2015-10-27 11:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:功夫熊猫    来源:51Testing软件测试网采编

  简单测试了一下,如果用JSON,也就是python2.6以上自带的json处理库,效率还算可以:
  1K的数据,2.9GHz的CPU,单核下每秒能dump:36898次。大约是pyamf的5倍。但数据量较大,约为pyamf的1.67倍(1101/656)。
  start_time: 1370747463.77
  loop_num: 36898
  end_time:   1370747464.78
  再看看simplejson,没有安装C扩展的情况下:
  simplejson,没有安装C扩展,跑出的结果让我惊讶:
  start_time: 1370748132.87
  loop_num: 1361
  end_time:   1370748133.88
  效率如此之低下。
  下面是测试代码:
#! /usr/bin/env python
#coding=utf-8
import time
import json
test_data = {
'baihe': {
'name': unicode('百合', 'utf-8'),
'say': unicode('清新,淡雅,花香', 'utf-8'),
'grow_time': 0.5,
'fruit_time':  0.5,
'super_time': 0.5,
'total_time': 1,
'buy':{'gold':2, } ,
'harvest_fruit': 1,
'harvest_super': 1,
'sale': 1,
'level_need': 0,
'experience' : 2,
'exp_fruit': 1,
'exp_super': 1,
'used': True,
},
'1':{
'interval' : 0.3,
'probability' : {
'98': {'chips' : (5, 25), },
'2' : {'gem' : (1,1), },
},
},
'2':{
'unlock' : {'chips':1000, 'FC':10,},
'interval' : 12,
'probability' : {
'70': {'chips' : (120, 250), },
'20': {'gem' : (1,1), },
'10': {'gem' : (2,2), },
},
},
'one':{
'10,5' :{'id':'m01', 'Y':1, 'msg':u'在罐子里发现了一个银币!',},
'3,7'  :{'id':'m02', 'Y':10,'msg':u'发现了十个银币!好大一笔钱!',},
'15,5' :{'id':'m03', 'Y':2, 'msg':u'一只老鼠跑了过去',},
'7,4'  :{'id':'m04', 'Y':4, 'msg':u'发现了四个生锈的银币……',},
'2,12' :{'id':'m05', 'Y':6, 'msg':u'六个闪亮的银币!',},
},
}
start_time = time.time()
print "start_time:", start_time
j = 1
while True:
j += 1
a = json.dumps(test_data)
data_length = len(a)
end_time = time.time()
if end_time - start_time >= 1 :
break
print "loop_num:", j
print "end_time:  ",end_time
print data_length ,a
  总结:python自带的json,性能可以接受。simplejson,如果没有C扩展加速,效率极其低下。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号