第二届开放原子大赛ICT领域专区赛4大AI赛项,120万奖金池,技术专家辅导,立即报名,等你来战!
WAST 是一个高性能 Java 工具集库包,包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎.
源码地址
- gitee: https://gitee.com/xiaoch0209/wast
- github: https://github.com/wycst/wast
性能测试:
- gitee: https://gitee.com/xiaoch0209/wast-jmh-test
- github: https://github.com/wycst/wast-jmh-test
- JSON与simdjson-java对比: JSON 性能测试之二 - wastjson 每秒 6GB 解析速度完胜 simdjson-java
- 表达式性能测试: WastEl 表达式引擎性能测试 - 每秒千万次运算超强性能 - OSCHINA - 中文开源技术交流社区
v0.0.21 更新内容:
- JSON调整序列化设置最大支持缓冲buf长度为1.5G (v0.0.20);
- JSON校验重构支持输入byte数组 (v0.0.20);
- double解析精度bug修复Issue #2 (v0.0.20);
- JSON支持解析简单类型(number/boolean/null)(v0.0.20);
- jdbc控制某一个实体类不打印sql;
- 优化EL表达式解析模式下的运行性能(pojo作为变量上下文时性能大幅度提升);
- 提升个别场景下double解析性能;
- JSONReader支持Pojo类型的短路读取解析;
- 修复JSON序列化在启用JIT模式下写入字段key错误问题
实用功能: JSON流式读取直接提取路径片段转化为Pojo类(短路模式)
public static void main(String[] args) { Book book = JSONReader.exactPathAs(JSONReaderPojoTest.class.getResourceAsStream("/json/path.json"), "/store/book/0", Book.class); System.out.println(book); System.out.println(JSON.toJsonString(book)); }
路径/store/book/0代表读取到第一个book后短路退出,并把命中的路径片段转化为Book对象,当读取的流数据特别大比如几百MB甚至几个GB大小时将非常有用,和常规的解析相比内存占用小(取决于buffsize可设置,默认8192字节),而且效率更高。注意,当流数据不大时就没必要使用流式读取了,经过测试JSONReader完整读取模式通常没有JSON的API直接反序列化快,当解析读取大数据流而且需要控制内存占用则推荐使用JSONReader。
还没有评论,来说两句吧...