当前位置: 首页 > news >正文

雅安市网站建设_网站建设公司_模板建站_seo优化

一元购网站建设流程图,淘宝客15套单页网站程序模板打包,宣威市网站建设,wordpress图片主题 简约本篇文章主要介绍了两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)#xff0c;主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容#xff0c;对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可…本篇文章主要介绍了两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可以参考一下。 近日做一些性能优化工作在挑选JSON类库时发现除了一般常用的JSON-lib外还有一款号称性能最快的JSON处理器Jackson于是用上了刚学会的JMeter对这两个类库进行了简单的性能对比。   Jacksonhttp://jackson.codehaus.org/ JSON-libhttp://json-lib.sourceforge.net/ Gsonhttp://code.google.com/p/google-gson/   测试环境   1、工作电脑Intel双核E8400 共6GHz内存4GBWinXP 2、JSON-lib用最新的JDK15GSON版本是最新的v1.4Jackson也是最新的v1.5.5JDK-v1.6.0_20JMeter-v2.4 3、测试时不开启任何无关进程每完成一项测试后关闭JMeter整理内存后再进行下一项测试每项测试运行3次取平均值 4、JSON转Java Bean意为将JSON格式转换成Java类这个类内包括Map、List、Date、Integer/Long/Double、String等类型的属性Java Bean转Json则同理。另外两者互转每次转换的数据都是随机生成   测试结果   * 吞吐量的值越大越好总耗时的值越小越好   JSON转Bean5个线程并发约200字节对象1千万次转换    JacksonJSON-libGsonTPS64113.78067.413952.8总耗时(秒)1551238700  Bean转JSON5个线程并发约200字节对象1千万次转换      JacksonJSON-libGsonTPS5480215093.217308.2总耗时(秒)181661560  JSON转Bean5个线程并发约2K对象1千万次转换    JacksonJSON-libGsonTPS373142406.93657.50总耗时(秒)26741202720  Bean转JSON5个线程并发约2K对象1千万次转换    JacksonJSON-libGsonTPS30922.24274.84977.00总耗时(秒)32223202000  测试总结   1、显而易见无论是哪种形式的转换Jackson Gson Json-lib。      Jackson的处理能力甚至高出Json-lib有10倍左右 2、JSON-lib似乎已经停止更新最新的版本也是基于JDK15而Jackson的社区则较为活跃 3、在测试性能的同时又以人肉方式对这三个类库转换的正确性 进行了检查 三者均达100%正确  4、JSON-lib在转换诸如Date类型时较为累赘如以下是两者的转换结果 JSON-lib {brithday:{date:17,day:2,hours:9,minutes:24,month:7,seconds:26,time:1282008266398,timezoneOffset:-480,year:110}} Jackson {brithday:1282008123101} 5、JSON-lib依赖commons系列的包及 ezmorph包共 5个而Jackson除自身的以外只依赖于commons-logging 6、Jackson提供完整基于节点的Tree Model以及完整的OJM数据绑定功能。   Jackson使用示例   JacksonMapper 创建为饿汉式单例模式 Jackson用于转换的核心类ObjectMapper无需每次都new一个object官网上的一句话can reuse, share globally   Java代码   /**  * author xuanyin  *   */  public class JacksonMapper {        /**      *       */      private static final ObjectMapper mapper  new ObjectMapper();        /**      *       */      private JacksonMapper() {        }        /**      *       * return      */      public static ObjectMapper getInstance() {            return mapper;      }    }     JSON转Bean   Java代码   ......  String json  ...;  ObjectMapper mapper  JacksonMapper.getInstance();  YourBean bean  mapper.readValue(json, new YourBean().getClass());  ......     Bean转JSON   Java代码   ......  YourBean bean  new YourBean();  ......  ObjectMapper mapper  JacksonMapper.getInstance();  StringWriter sw  new StringWriter();  JsonGenerator gen  new JsonFactory().createJsonGenerator(sw);  mapper.writeValue(gen, bean);  gen.close();  String json  sw.toString();  ......     * 上面两段代码中的YourBean当然也可以是Java的基本类型               近日做一些性能优化工作在挑选JSON类库时发现除了一般常用的JSON-lib外还有一款号称性能最快的JSON处理器Jackson于是用上了刚学会的JMeter对这两个类库进行了简单的性能对比。   Jacksonhttp://jackson.codehaus.org/ JSON-libhttp://json-lib.sourceforge.net/ Gsonhttp://code.google.com/p/google-gson/   测试环境   1、工作电脑Intel双核E8400 共6GHz内存4GBWinXP 2、JSON-lib用最新的JDK15GSON版本是最新的v1.4Jackson也是最新的v1.5.5JDK-v1.6.0_20JMeter-v2.4 3、测试时不开启任何无关进程每完成一项测试后关闭JMeter整理内存后再进行下一项测试每项测试运行3次取平均值 4、JSON转Java Bean意为将JSON格式转换成Java类这个类内包括Map、List、Date、Integer/Long/Double、String等类型的属性Java Bean转Json则同理。另外两者互转每次转换的数据都是随机生成   测试结果   * 吞吐量的值越大越好总耗时的值越小越好   JSON转Bean5个线程并发约200字节对象1千万次转换    JacksonJSON-libGsonTPS64113.78067.413952.8总耗时(秒)1551238700    Bean转JSON5个线程并发约200字节对象1千万次转换    JacksonJSON-libGsonTPS5480215093.217308.2总耗时(秒)181661560    JSON转Bean5个线程并发约2K对象1千万次转换    JacksonJSON-libGsonTPS373142406.93657.50总耗时(秒)26741202720    Bean转JSON5个线程并发约2K对象1千万次转换    JacksonJSON-libGsonTPS30922.24274.84977.00总耗时(秒)32223202000    测试总结   1、显而易见无论是哪种形式的转换Jackson Gson Json-lib。      Jackson的处理能力甚至高出Json-lib有10倍左右 2、JSON-lib似乎已经停止更新最新的版本也是基于JDK15而Jackson的社区则较为活跃 3、在测试性能的同时又以人肉方式对这三个类库转换的正确性 进行了检查 三者均达100%正确  4、JSON-lib在转换诸如Date类型时较为累赘如以下是两者的转换结果 JSON-lib {brithday:{date:17,day:2,hours:9,minutes:24,month:7,seconds:26,time:1282008266398,timezoneOffset:-480,year:110}} Jackson {brithday:1282008123101} 5、JSON-lib依赖commons系列的包及ezmorph包共5个而Jackson除自身的以外只依赖于commons-logging6、Jackson提供完整基于节点的Tree Model以及完整的OJM数据绑定功能。   Jackson使用示例   JacksonMapper 创建为饿汉式单例模式 Jackson用于转换的核心类ObjectMapper无需每次都new一个object官网上的一句话can reuse, share globally Java代码 /**   * author xuanyin   *    */  public class JacksonMapper {         /**       *        */      private static final ObjectMapper mapper  new ObjectMapper();         /**       *        */      private JacksonMapper() {         }         /**       *        * return       */      public static ObjectMapper getInstance() {             return mapper;       }     }    JSON转Bean Java代码 ......   String json  ...;   ObjectMapper mapper  JacksonMapper.getInstance();   YourBean bean  mapper.readValue(json, new YourBean().getClass());   ......     Bean转JSON Java代码 ......   YourBean bean  new YourBean();   ......   ObjectMapper mapper  JacksonMapper.getInstance();   StringWriter sw  new StringWriter();   JsonGenerator gen  new JsonFactory().createJsonGenerator(sw);   mapper.writeValue(gen, bean);   gen.close();   String json  sw.toString();   ......     * 上面两段代码中的YourBean当然也可以是Java的基本类型   文章不足之处欢迎大家留言指正)       11 楼 wangym 2010-08-18   引用 wangliang_5290 写道 wangym 写道 wangliang_5290 写道 我碰到一个问题要将字符串String json {a:1, b:2};转化为 Map, 如果用Jackson的话对字符串格式有严格要求必须为String json {\a\:1, \b\:2};否则报错觉得不爽。不知道是对Json了解不够呢 还是Jackson就是这么要求的 在JAVA里定义这样一个String自然是需要\给后面的引号进行转义无论是用哪个JSON类库都一样但在实际应用中没有这个问题。 实际应用中json串不一定是在java中定义的有可能是从页面传过来的java只是负责解析。我以前用的是json-lib没有问题 但是换成jackson后出现这个问题。不知道是不是对jackson的API研究不够1.json-lib 以下写法没有问题 Java代码 Map map  JSONObject.fromObject({a:1, b:2});   2.jackson 以下写法报异常 Java代码 Map map  new ObjectMapper().readValue({a:1, b:2}, HashMap.class);   必须写成 Java代码 Map map  new ObjectMapper().readValue({\a\:1, \b\:2}, HashMap.class);   不好意思一开始没明白你的意思请开启支持字段名称不带引号的转换模式,默认是关闭的.即将上面报异常的那句改成这样 Java代码 Map map  new ObjectMapper().configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true).readValue({a:1, b:2}, HashMap.class);     24 楼 wangym 2011-01-18   引用 JSON转POJO时若JSON中的某个字段在POJO中未定义在默认情况下会抛异常转换失败只要增加这个配置   Java代码 Feature.FAIL_ON_UNKNOWN_PROPERTIES, false  就可以转换正常即只转换定义的字段未定义的字段忽略。转载于:https://www.cnblogs.com/xujishou/p/6929802.html
http://www.ihoyoo.com/news/121047.html

相关文章:

  • 企业电子网站建设固始县住房和城乡规划建设局网站
  • jquery 网站源码中国招商平台
  • 柳市那些做网站的公司山东联迪建设集团网站
  • 网站建设公司哪有封面设计用什么软件做
  • 如何建设网站网站手机网站商场建设
  • 北京做公司网站济宁培训网站建设
  • 网站开发 自我评价公司注册的流程和条件
  • asp系统网站怎么做优化中国寰球工程有限公司网站设计
  • 简述电子商务网站开发的主要步骤电子外发加工网
  • 做百度推广需要有网站吗网络推广公司网站
  • 类似红盟的网站怎么做企业网站有哪些举几个例子
  • 有没有做产品团购的网站网络营销外包推广渠道
  • 有阿里云主机管理平台如何自己做网站wordpress自动网站地址
  • 规划设计 网站 网站结构公司网站开发立项文档
  • 凡科网做的网站怎么样微信公众官方平台入口
  • 服装网站推广策划书定制app系统开发
  • 成都市住房和城乡建设局官方网站搜索引擎快速优化排名
  • 网站建设每年需要交多少钱网站关键词优化案例
  • dedecms 做影网站杭州网站建站推广
  • 免费创网站深圳互联网公司排行榜100
  • 网站备案信息是什么浙江建设厅网站官网
  • 北京营销型网站推广wordpress分享代码
  • 正常成都建设网站世界杯直播入口官网
  • 网站营销平台代理商免费发布推广的网站有哪些
  • 湖南网站建设大全公司网页设计费记哪个科目
  • php网站用到的知识wordpress媒体库分离
  • 随州北京网站建设咸阳学校网站建设哪家好
  • 国内外做gif的网站10m网站空间
  • 中国建设工程监理协会官方网站随州市建设局网站
  • 做网站的哪里便宜怎么把网站加入黑名单