网站设计所遵循的原则,一键生成app制作器免费版,网络推广运营主要做什么,不动产网站建设2019独角兽企业重金招聘Python工程师标准 近日做一些性能优化工作#xff0c;在挑选JSON类库时#xff0c;发现除了一般常用的JSON-lib外#xff0c;还有一款号称性能最快的JSON处理器Jackson#xff0c;于是用上了刚学会的JMeter#xff0c;对这两个类库进… 2019独角兽企业重金招聘Python工程师标准 近日做一些性能优化工作在挑选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总耗时(秒)1551238700Bean转JSON5个线程并发约200字节对象1千万次转换 JacksonJSON-libGsonTPS5480215093.217308.2总耗时(秒)181661560JSON转Bean5个线程并发约2K对象1千万次转换 JacksonJSON-libGsonTPS373144274.84977.00总耗时(秒)32223202000Bean转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使用示例 创建为饿汉式单例模式 Jackson用于转换的核心类ObjectMapper无需每次都new一个object官网上的一句话can reuse, share globally public class JacksonMapper{private static final ObjectMapper mapper new ObjectMapper();public static ObjectMapper getObjectMapper() {return mapper; }
} //Use of Jackson, convert the string to List
ObjectMapper om JacksonMapper.getObjectMapper();
ListMapString, String list om.readValue(sb.toString(), List.class); 转载于:https://my.oschina.net/zzq911013/blog/287026