简介
WAST 是一个高性能 Java 工具集库包,包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎.
上篇测试了WastEl表达式引擎的性能,本篇测试下Wast下面JSON模块性能,选取当前性能最快的Fastjson2和DslJson针对实体类的序列化和反序列化做下对比测试.
maven 依赖截止当前最新版本
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.53</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2-incubator-vector</artifactId>
<version>2.0.53</version>
</dependency>
<dependency>
<groupId>io.github.wycst</groupId>
<artifactId>wast</artifactId>
<version>0.0.18</version>
</dependency>
<dependency>
<groupId>com.dslplatform</groupId>
<artifactId>dsl-json</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.36</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.36</version>
</dependency>
数据大小 2kb
测试环境 window10 + JDK17 + IDEA2023
JVM参数 -Xms3g -Xmx3g --add-opens=java.base/java.time=ALL-UNNAMED --add-modules=jdk.incubator.vector
线程数 7
测试结果(每秒运行次数)
Benchmark Mode Cnt Score Error Units
JavaJsonJmhDeserTest.dsljson_deser_client thrpt 5 639191.204 ± 49022.629 ops/s
JavaJsonJmhDeserTest.fastjson2_deser_client thrpt 5 640448.091 ± 11550.536 ops/s
JavaJsonJmhDeserTest.wast_deser_client thrpt 5 1014195.116 ± 36716.999 ops/s
JavaJsonJmhSerTest.dsljson_ser_client thrpt 5 1106091.064 ± 49454.761 ops/s
JavaJsonJmhSerTest.fastjson2_ser_client thrpt 5 1536311.707 ± 33316.424 ops/s
JavaJsonJmhSerTest.wast_ser_client thrpt 5 1952285.412 ± 113669.838 ops/s
以上仅个人测试结果,从上面数据来看,不论序列化还是反序列化wastjson性能都要领先Fastjson2和DslJson.
另外,WastJson无论是小中大文本各种数据类型等性能都没有明显的短板,除了推广外可以说是六边形战士,更多测试参考 https://gitee.com/xiaoch0209/wast-jmh-test (并非所有的case都能领先于fastjson2,某些场景fastjson2性能也相当出色)
感兴趣的欢迎下载测试,任何场景,不限于博文提到的场景测试.
WastJson 文档地址
源码地址
- gitee: https://gitee.com/xiaoch0209/wast
- github: https://github.com/wycst/wast