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扩展加速,效率极其低下。
python JSON性能测试与simplejson对比的更多相关文章
- Python - json和simplejson比较(转)
From:https://stackoverflow.com/questions/712791/what-are-the-differences-between-json-and-simplejson ...
- Python json和simplejson的使用
在Python中,json数据和字符串的转换可以使用json模块或simplejson模块. json从Python2.6开始内置到了Python标准库中,我们不需要安装即可直接使用. simplej ...
- Python Locust性能测试框架实践
[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...
- 老李分享:Python开发性能测试脚本
老李分享:Python开发性能测试脚本 测试开发工程师的工作主要是根据测试目标来完成,帮助测试人员完成测试目标,测试的业务需求是测试人员提出,但是由于环境的制约,手中没有性能测试工具的时候,性能测 ...
- 关于Python json解析过程遇到的TypeError: expected string or buffer
关于Python json解析过程遇到的问题:(爬取天气json数据所遇到的问题http://tianqi.2345.com/) part.1 url——http://tianqi.2345.com/ ...
- Python json格式处理
Python json格式处理 首先放一段代码 import requests import jsonpath import json f=open('ip.txt','r',encoding='ut ...
- python json基础学习01
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import json #全称(javascript object ...
- python json数据的转换
1 Python数据转json字符串 import json json_str = json.dumps(py_data) 参数解析: json_str = json.dumps(py_data,s ...
- python大法好——python json
Python JSON 本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, ...
随机推荐
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_基元类型(二)
[基元类型推荐] 推荐直接使用 FCL 类型. [理由] 编码时不至于困惑string与String的使用.由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL 类型 ...
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_.Net Framework 部署目标
1.解决Windows性能不稳定: 2.降低Windows程序安装的复杂性: 3.解决Windows程序不安全性: 4.解决应用程序状态在硬盘上分散: 5.允许用户灵活地控制哪些东西能够安装,哪些东西 ...
- 网络流EdmondsKarp算法模板理解
先推荐一个讲网络流的博客,我的网络流知识均吸收于此 传送门 EdmondsKarp算法基本思想:从起点到终点进行bfs,只要存在路,说明存在增广路径,则取这部分路 权值最小的一部分,即为增广路径( ...
- linux 数据库管理
1.安装数据库: yum install mariadb.serversystemctl staus mariadbsystemctl start mariadbsystemctl enable ma ...
- 解决:安装Jenkins时web界面出现该jenkins实例似乎已离线
很久没有安装jenkins了,因为之前用的的服务器一直正常使用,令人郁闷的是,之前用jenkins一直没出过这个问题. 令人更郁闷的是,我尝试了好多个历史版本和最新版本,甚至从之前的服务器把jenki ...
- equals和== 区别
转载:https://zhidao.baidu.com/question/61622858.html ==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值. (比较地址值即是指是否 ...
- VS 2017与 Docker
https://www.cnblogs.com/rufus-hua/p/6742836.html 参考 1 基于VS2017的Docker Support体检ASP.NET Core站点的Docker ...
- linux开机启动服务学习chkconfig命令
选项: --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据: --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系 ...
- java——重载解析、静态绑定、动态绑定
重载解析: a被声明为A类型的对象,调用method()方法时,如果有多个同名方法,参数不同,编译器将列举所用类A的method()方法和所用父类中public类型的method()方法,编译器查看这 ...
- Oracle基础篇--00引言
今天开始,复习oracle基础.主要是以前培训的时候的文档作为结构来梳理知识点,主要目的是把Oracle基础打的扎实点.后面要转做后台开发,或者工作中需要用到数据库知识时也不至于临时抱佛脚. 一直以来 ...