Issue2407.java

package com.alibaba.fastjson2.benchmark.issues;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.annotation.JSONField;
import org.apache.commons.io.IOUtils;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.infra.Blackhole;

import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class Issue2407 {
    static String str;
    static byte[] utf8;

    static {
        try {
            InputStream is = Issue2407.class.getClassLoader().getResourceAsStream("issue/issue2407.json");
            str = IOUtils.toString(is, "UTF-8");
            utf8 = str.getBytes(StandardCharsets.UTF_8);
        } catch (Throwable ex) {
            ex.printStackTrace();
        }
    }

    @Benchmark
    public void parseArray(Blackhole bh) {
        bh.consume(
                JSON.parseArray(str)
        );
    }

    @Benchmark
    public void parseArray1(Blackhole bh) {
        bh.consume(
                JSON.parseArray(str, Bean.class)
        );
    }

//    @Benchmark
    public void parseArray1_utf8(Blackhole bh) {
        bh.consume(
                JSON.parseArray(utf8, Bean.class)
        );
    }

    public class Bean {
        public String content;
        public String hostName;
        public String uniqueKey;
        public String originalAppName;
        public String odinLeaf;
        public long logTime;
        public long logId;
        public String appName;
        public String queryFrom;
        public String logName;
        public int isService;
        public long pathId;
        public String timestamp;
        public long collectTime;
        public String fileKey;
        public String parentPath;
        public long offset;
        public long preOffset;
        @JSONField(name = "ENV_ODIN_SU")
        public String envOdinSu;
    }
}