简单测试了一下,如果用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

效率如此之低下。

下面是测试代码:

  1. #! /usr/bin/env python
  2. #coding=utf-8
  3. import time
  4. import json
  5. test_data = {
  6. 'baihe': {
  7. 'name': unicode('百合', 'utf-8'),
  8. 'say': unicode('清新,淡雅,花香', 'utf-8'),
  9. 'grow_time': 0.5,
  10. 'fruit_time':  0.5,
  11. 'super_time': 0.5,
  12. 'total_time': 1,
  13. 'buy':{'gold':2, } ,
  14. 'harvest_fruit': 1,
  15. 'harvest_super': 1,
  16. 'sale': 1,
  17. 'level_need': 0,
  18. 'experience' : 2,
  19. 'exp_fruit': 1,
  20. 'exp_super': 1,
  21. 'used': True,
  22. },
  23. '1':{
  24. 'interval' : 0.3,
  25. 'probability' : {
  26. '98': {'chips' : (5, 25), },
  27. '2' : {'gem' : (1,1), },
  28. },
  29. },
  30. '2':{
  31. 'unlock' : {'chips':1000, 'FC':10,},
  32. 'interval' : 12,
  33. 'probability' : {
  34. '70': {'chips' : (120, 250), },
  35. '20': {'gem' : (1,1), },
  36. '10': {'gem' : (2,2), },
  37. },
  38. },
  39. 'one':{
  40. '10,5' :{'id':'m01', 'Y':1, 'msg':u'在罐子里发现了一个银币!',},
  41. '3,7'  :{'id':'m02', 'Y':10,'msg':u'发现了十个银币!好大一笔钱!',},
  42. '15,5' :{'id':'m03', 'Y':2, 'msg':u'一只老鼠跑了过去',},
  43. '7,4'  :{'id':'m04', 'Y':4, 'msg':u'发现了四个生锈的银币……',},
  44. '2,12' :{'id':'m05', 'Y':6, 'msg':u'六个闪亮的银币!',},
  45. },
  46. }
  47. start_time = time.time()
  48. print "start_time:", start_time
  49. j = 1
  50. while True:
  51. j += 1
  52. a = json.dumps(test_data)
  53. data_length = len(a)
  54. end_time = time.time()
  55. if end_time - start_time >= 1 :
  56. break
  57. print "loop_num:", j
  58. print "end_time:  ",end_time
  59. print data_length ,a

总结:python自带的json,性能可以接受。simplejson,如果没有C扩展加速,效率极其低下。

最新文章

  1. UVA-146 ID Codes
  2. ORA-00600 3020 ORA-10567案例
  3. 带callback的future实现
  4. java基础练习[一]
  5. ASP.NET MVC 开源项目学习之ProDinner (三)
  6. 在AngularJS的controller外部直接获取$scope
  7. C语言之辗转相除法
  8. 如何解决Windows8.1(32bit&64bit)下Cisco VPN Client拨号时报442错误的问题
  9. 【LeetCode】332. Reconstruct Itinerary
  10. STM8操作LCD5110总结
  11. JGUI源码:开发中遇到的问题(11)
  12. [HAOI2008]糖果传递 结论题
  13. Quartz.Net进阶之二:关于触发器的更多信息
  14. Voltage Keepsake CodeForces - 801C (思维+二分)
  15. AJAX返回总是ERROR或是没有数据的问题
  16. hdu 1057 A + B Again
  17. L319 Zigbee test coding- field test fail-base on EFR32MG1
  18. 常用的服务发现对比(Consul、zookeeper、etcd、eureka)
  19. Highways---poj1751最小生成树
  20. 洛谷P3265 [JLOI2015]装备购买 [线性基]

热门文章

  1. 树莓派使用 HLS 实现视频流直播
  2. C语言把字符串转换为数字
  3. 关于 java中的SecureRandom在linux中每次生成不同结果
  4. SQL常用性能统计语句
  5. eclipse 离线安装STS插件
  6. PHP、thinkPHP5.0开发网站文件管理功能(一)显示文件
  7. Vue.js-----轻量高效的MVVM框架(十二、组件动态切换)
  8. robot framework 的AutoItLibrary常用关键字
  9. CTeX里面CTRL-Space和中文输入法的冲突问题解决
  10. pat1020. Tree Traversals (25)