python JSON性能测试与simplejson对比

简单测试了一下,如果用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扩展加速,效率极其低下。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值