发布于 2016-04-04 07:30:29 | 84 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

fastjson JSON 解析器

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。


Android环境下性能大幅度提升,减少内存占用,jar包大小不足200k。

1. 性能优化。

1.1.47-android针对android做了很多性能优化,性能优化包括首次序列化/反序列化,在android环境,序列化的次数较少,不如服务器端多,在此版本中,针对首次序列化和反序列化做了优化大幅提升了性能,当然常规的优化也做了很多。
优化的办法包括:

  • 减少getAnnotation/getGenericType等耗时方法的调用。

  • 减少方法调用,android的内联优化做得不好,方法调用的开销比oracle jvm大得多。减少方法调用的技巧包括:使用成员变量减少方法重复调用,使用field代替getter/setter,合并小方法。

  • 迁移在非android版本的通过字节码生成实现的优化算法,对key采用比较而不是读出key对象的方法,反序列化能减少一半对象创建,从而能大幅提升性能。

  • 采用Field的getInt/getLong/setInt/setLong/setBoolean/setFloat/setDouble等方法,减少序列化/反序列化过程中原生类型(boolean/int/long/float/double)对象的box/unbox的开销。

2. 功能增强

  • 日期反序列化能自动识别YYYY-MM-DDTHH:mm:ss.sssZ和YYYY-MM-DDTHH:mm:ssZ这两种格式。

3. 功能裁剪。

这个版本去掉了android版本不常用的stream api,去掉了stream api的JSONReader/JSONWriter相关实现。

4. 性能测试

测试机器 OPPO R7 plusm 处理器高通MSM8939八核 运行内存3GB
Android版本 5.1.1
测试代码 https://github.com/alibaba/fastjson/tree/1.1.47-android/src/test/java/com/alibaba/json/test/benchmark

测试数据

  首次序列化 首次反序列化 非首次序列化 非首次反序列化
fastjson-1.1.47-android 1280 2168 723 871
gson-2.6.2 5205 4897 1881 1486
 


历史版本 :
fastjson 1.2.45 发布,Bug 修复版本
fastjson 1.1.68.android 发布,bug 修复
fastjson 1.2.44 版本发布,支持空字符串转 HashMap
fastjson 1.2.43 版本发布,Bug 修复以及安全加固
fastjson 1.2.42 版本发布,Bug 修复和安全加固
fastjson-1.2.41 和 fastjson-1.1.67.android 发布
fastjson-1.2.40 版本发布,修复 BUG 并增强 Kotlin 支持
fastjson-1.1.65.android 发布, 增强 Kotlin 支持
fastjson-1.1.64.android 增强对 Kotlin 的支持,修复 BUG
fastjson-1.2.39 修复了 kotlin 及各种场景下的小问题
fastjson-1.1.63.android 增强对 Kotlin 的支持,提升性能
fastjson-1.2.38 版本发布,优化了日期类型反序列化
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务