ShortBench.java

package com.alibaba.fastjson2.benchmark.primitves;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONB;
import com.alibaba.fastjson2.JSONWriter;
import org.openjdk.jmh.infra.Blackhole;

public class ShortBench {
    private static final short[] VALUES;

    static {
        short[] shorts = new short[Short.MAX_VALUE - Short.MIN_VALUE];
        for (int i = 0; i < shorts.length; i++) {
            shorts[i] = (short) (Short.MIN_VALUE + i);
        }
        VALUES = shorts;
    }

    public void utf8(Blackhole BH) {
        JSONWriter jsonWriter = JSONWriter.ofUTF8();
        jsonWriter.writeAny(VALUES);
        BH.consume(jsonWriter.getBytes());
        jsonWriter.close();
    }

    public void utf16(Blackhole BH) {
        JSONWriter jsonWriter = JSONWriter.ofUTF16();
        jsonWriter.writeAny(VALUES);
        BH.consume(jsonWriter.getBytes());
        jsonWriter.close();
    }

    public void bean_jsonBytes(Blackhole BH) {
        for (int i = 0; i + 10 <= VALUES.length; i += 10) {
            Bean bean = new Bean();
            bean.v0 = VALUES[i];
            bean.v1 = VALUES[i + 1];
            bean.v2 = VALUES[i + 2];
            bean.v3 = VALUES[i + 3];
            bean.v4 = VALUES[i + 4];
            bean.v5 = VALUES[i + 5];
            bean.v6 = VALUES[i + 6];
            bean.v7 = VALUES[i + 7];
            bean.v8 = VALUES[i + 8];
            bean.v9 = VALUES[i + 9];
            byte[] bytes = JSON.toJSONBytes(bean);
            BH.consume(bytes);
        }
    }

    public void bean_jsonStr(Blackhole BH) {
        for (int i = 0; i + 10 <= VALUES.length; i += 10) {
            Bean bean = new Bean();
            bean.v0 = VALUES[i];
            bean.v1 = VALUES[i + 1];
            bean.v2 = VALUES[i + 2];
            bean.v3 = VALUES[i + 3];
            bean.v4 = VALUES[i + 4];
            bean.v5 = VALUES[i + 5];
            bean.v6 = VALUES[i + 6];
            bean.v7 = VALUES[i + 7];
            bean.v8 = VALUES[i + 8];
            bean.v9 = VALUES[i + 9];
            String jsonStr = JSON.toJSONString(bean);
            BH.consume(jsonStr);
        }
    }

    public void bean_jsonb(Blackhole BH) {
        for (int i = 0; i + 10 <= VALUES.length; i += 10) {
            Bean bean = new Bean();
            bean.v0 = VALUES[i];
            bean.v1 = VALUES[i + 1];
            bean.v2 = VALUES[i + 2];
            bean.v3 = VALUES[i + 3];
            bean.v4 = VALUES[i + 4];
            bean.v5 = VALUES[i + 5];
            bean.v6 = VALUES[i + 6];
            bean.v7 = VALUES[i + 7];
            bean.v8 = VALUES[i + 8];
            bean.v9 = VALUES[i + 9];
            byte[] bytes = JSONB.toBytes(bean);
            BH.consume(bytes);
        }
    }

    public static class Bean {
        public short v0;
        public short v1;
        public short v2;
        public short v3;
        public short v4;
        public short v5;
        public short v6;
        public short v7;
        public short v8;
        public short v9;
    }
}