> Linux新闻 >

JSON 性能测试 - WastJson 性能也很快

简介

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

测试类  https://gitee.com/xiaoch0209/wast-jmh-test/blob/main/src/main/java/com/jmh/test/json/bean/javajsonjmh/JavaJsonJmhDeserTest.java

测试环境 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 文档地址

查看 WastJson 文档

源码地址

  • gitee: https://gitee.com/xiaoch0209/wast    
  • github: https://github.com/wycst/wast
(责任编辑:IT)