json转化过慢的调优

最近系统响应很慢,后来发现和SQL也关系不大。
跟踪程序后发现,和JAVA对象转化为JSON对象有一定的关系,也算是优化的一个方面吧。

json的官方网站
http://json.org/

找到一个遇到类似问题的朋友,参考他的日志
http://hi.baidu.com/camaro/blog/item/384b31e9e7bae237b90e2d44.html
http://twit88.com/blog/2008/07/11/java-json-parser-performance/
My test is simple.
Create a JSON object
Add few String objects to the object
Serialize and deserialize the JSON object
Loop the above for 1 million times

The performance of the above libraries sorted in order
Jackson
Noggit
JSON-lib
我使用的也是JSON-lib,NND,测试一下排名前面的两个东东试试。

jackson首页
http://jackson.codehaus.org/
下载地址
http://wiki.fasterxml.com/JacksonDownload
文档地址
http://wiki.fasterxml.com/JacksonInFiveMinutes

下载到jar jackson-xc-1.2.0.jar,jackson-core-asl-1.2.0.jar,jackson-mapper-asl-1.2.0.jar,jackson-jaxrs-1.2.0.jar

User user = new User();
user.setEmail("luohuazju@hotmail.com");
user.setIdxNum(Integer.valueOf(1));
user.setLoginId("luohuazju");
Company u = new Company();
u.setName("handsome");
u.setLocation("四u24029 ");
user.setCompany(u);
Map item = new HashMap();
item.put("user", user);
JSONObject jo = JSONObject.fromObject(item, configJson());
System.out.println("=============json lib====================");
System.out.println(jo.toString());
System.out.println("=============json lib====================");
System.out.println("=============jackson lib====================");
System.out.println(getJsonString(item));
System.out.println("=============jackson lib====================");

private static JsonConfig configJson() {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
return jsonConfig;
}
private static String getJsonString(Object item) {
JsonFactory jf = new JsonFactory();
try {
StringWriter sw = new StringWriter();
JsonGenerator gen = jf.createJsonGenerator(sw);
new ObjectMapper().writeValue(gen, item);
gen.flush();
return sw.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
单元测试,没有问题,但是在实际的UserController中,user中有company对象,company中有users对象。导致了如下错误:
报错:
DEBUG DispatcherServlet - Could not complete request
Caused by: java.lang.StackOverflowError
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:71)
at org.codehaus.jackson.map.ser.BeanPropertyWriter$StdMethod.serializeAsField(BeanPropertyWriter.java:215)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:58)
at org.codehaus.jackson.map.ser.BeanPropertyWriter$StdMethod.serializeAsField(BeanPropertyWriter.java:215)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:58)
搜索到的结果,目前无法解决,要等待1.3版本

noggit的SVN地址
http://svn.apache.org/repos/asf/labs/noggit/
pom.xml注释掉有关eclipse的插件那块
命令 mvn clean
命令 mvn install
编译得到jar包noggit-1.0-SNAPSHOT.jar

玩不来,以后再看看。

gson首页
http://code.google.com/p/google-gson/

代码片段
Gson gson = new Gson();
String json = gson.toJson(item);
System.out.println("=============gson lib====================");
System.out.println(json);
System.out.println("=============gson lib====================");

但是当item中对象有循环引用时报错:
Exception in thread "main" java.lang.IllegalStateException: Circular reference found: cn.sccl.um.model.User@26d4f1
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:108)

暂时没有找到解决办法,算了,暂时解决对象中的循环调用吧。

json转化过慢的调优相关推荐

  1. 性能调优之三十六计 —— 「取而代之」Echo/Json 篇

    文章目录 性能调优之三十六计 -- 「取而代之」Echo/Json 篇 Echo 高性能.极简框架 C.JSON Json-iterator Q&A 附录 性能调优之三十六计 -- 「取而代之 ...

  2. B站Up主上传质量调优实践

    Up主上传的大量优质视频内容使得bilibili(B站)深受年轻用户的喜爱.bilibili视频云高级研发经理 唐君行在LiveVideoStack线上交流分享中详细介绍了B站为提供更流畅.稳定用户体 ...

  3. 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例

    大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...

  4. hive-关系运算符-存储压缩-hive调优

    函数方法 关系运算符 和where配合使用完成条件判断 查看函数方法 show functions ; desc function extended isnull; 关系运算符的方法 -- 空值判断 ...

  5. lightGBM参数解析及其参数调优

    lightGBM官网中文文档! LightGBM是打比赛如CCF大数据与天池大数据竞赛的经常被使用的模型 一:模型简介 lightgbm是xgboost的加强升级版. LightGBM=XGBoost ...

  6. 2023-Hive调优最全指南

    本文基本涵盖以下内容: 一.基于Hadoop的数据仓库Hive基础知识 二.HiveSQL语法 三.Hive性能优化 四.Hive性能优化之数据倾斜专题 五.HiveSQL优化十二板斧 六.Hive面 ...

  7. Java 编程性能调优

    把 Java 性能调优分成 5 个层级:Java 编程.多线程.JVM 性能检测.设计模式.数据库性能,每个层级下都覆盖了最常见的优化问题.下面分别给你梳理一下: 可参考地址:Java性能调优全攻略来 ...

  8. 2021年大数据Hive(十一):Hive调优

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive调优 一.本地模式 1.空key处理 二.SQL ...

  9. hive性能调优实战pdf_Nginx 性能调优实战

    来自:Linux社区 1.Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2.如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpui ...

最新文章

  1. [iOS]调和 pop 手势导致 AVPlayer 播放卡顿
  2. Mac git clone速度太慢
  3. Android监听安装卸载
  4. html js css如何关联_html+css +js 选项卡
  5. python内建函数是什么意思_Python3内建函数简介,Python3内建函数详解
  6. centos配置单网卡双IP
  7. 5.14 js对象 函数 js操作document对象
  8. PHP字符串运算结果,PHP 实现后缀表达式(接受四则运算字符串,输出计算结果,附代码)...
  9. 2021凯络趋势报告
  10. java 反射data类型_java反射机制系列之初识Java Reflection
  11. python使用pip安装_Python pip 安装与使用
  12. 计算机手动双面打印,记得要收藏 如何手动完成双面打印文档
  13. python 吃cpu 显卡 内存_浅析 Pycharm 内存、cpu 占用率
  14. •检查你的代理设置127.0.0.1:2****。 转到“工具”“Internet 选项”“连接”。如果你在 LAN 中,请单击“局域网设置”。
  15. Kinect_人脸识别
  16. 【转载】Red Hat Enterprise Linux ISO 45678版本镜像下载【网盘资源】
  17. ASCII美国信息交换标准代码表
  18. html2d动画,HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
  19. 小程序源码:独家全新娱乐性超高的喝酒神器-多玩法安装简单
  20. 前后端处理实时刷新refresh_token的使用

热门文章

  1. 华为防火墙USG6000通过WEB图形界面配置案例
  2. 可以翻译ppt文档的软件有哪些?
  3. 怎么在电脑上看磁盘分配单元的大小_Win10系统如何磁盘分区,今天小黑来教你,看完涨知识了!...
  4. 批处理一键安装所有离线的Python库
  5. MasterAlign对位贴合系统——特殊对位应用
  6. 利用百度地图api显示北京某区电影院
  7. 火狐浏览器Firefox如何导出导入书签页
  8. 宕机超 12 小时,损失过亿,唯品会基础平台负责人被“祭天”
  9. 引进RFID仓库管理系统解决方案,究竟能给企业仓库管理带来什么优势呢-新导智能
  10. 坦克大战小游戏关键技术总结