benchmark/src/main/java/com/alibaba/fastjson2/benchmark/fastcode/DecimalHugToString.java [25:89]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        unscaledVal = decimal.unscaledValue();

        try {
            MethodHandles.Lookup lookup = JDKUtils.trustedLookup(BigDecimal.class);

            MethodHandle handle = lookup.findVirtual(
                    BigDecimal.class, "layoutChars", methodType(String.class, boolean.class)
            );

            CallSite callSite = LambdaMetafactory.metafactory(
                    lookup,
                    "apply",
                    methodType(BiFunction.class),
                    methodType(Object.class, Object.class, Object.class),
                    handle,
                    methodType(String.class, BigDecimal.class, Boolean.class)
            );
            LAYOUT_CHARS = (BiFunction<BigDecimal, Boolean, String>) callSite.getTarget().invokeExact();
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    @Benchmark
    public void toPlainString(Blackhole bh) {
        bh.consume(DecimalUtils.toString(unscaledVal, scale));
    }

    @Benchmark
    public void layoutChars(Blackhole bh) {
        bh.consume(LAYOUT_CHARS.apply(decimal, Boolean.TRUE));
    }

    @Benchmark
    public void toPlainStringDec(Blackhole bh) {
        bh.consume(
                decimal.toPlainString()
        );
    }

    public void toStringCharWithInt8(Blackhole bh) {
        StringBuilder result = new StringBuilder();
        result.append(2048);
        result.append(31337);
        result.append(0xbeefcace);
        result.append(9000);
        result.append(4711);
        result.append(1337);
        result.append(2100);
        result.append(2600);
        bh.consume(result.toString());
    }

    public void toStringCharWithInt8UTF16(Blackhole bh) {
        StringBuilder result = new StringBuilder();
        result.append('\u4e2d');
        result.append(2048);
        result.append(31337);
        result.append(0xbeefcace);
        result.append(9000);
        result.append(4711);
        result.append(1337);
        result.append(2100);
        result.append(2600);
        bh.consume(result.toString());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



benchmark/src/main/java/com/alibaba/fastjson2/benchmark/fastcode/DecimalLargeToString.java [25:89]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        unscaledVal = decimal.unscaledValue();

        try {
            MethodHandles.Lookup lookup = JDKUtils.trustedLookup(BigDecimal.class);

            MethodHandle handle = lookup.findVirtual(
                    BigDecimal.class, "layoutChars", methodType(String.class, boolean.class)
            );

            CallSite callSite = LambdaMetafactory.metafactory(
                    lookup,
                    "apply",
                    methodType(BiFunction.class),
                    methodType(Object.class, Object.class, Object.class),
                    handle,
                    methodType(String.class, BigDecimal.class, Boolean.class)
            );
            LAYOUT_CHARS = (BiFunction<BigDecimal, Boolean, String>) callSite.getTarget().invokeExact();
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    @Benchmark
    public void toPlainString(Blackhole bh) {
        bh.consume(DecimalUtils.toString(unscaledVal, scale));
    }

    @Benchmark
    public void layoutChars(Blackhole bh) {
        bh.consume(LAYOUT_CHARS.apply(decimal, Boolean.TRUE));
    }

    @Benchmark
    public void toPlainStringDec(Blackhole bh) {
        bh.consume(
                decimal.toPlainString()
        );
    }

    public void toStringCharWithInt8(Blackhole bh) {
        StringBuilder result = new StringBuilder();
        result.append(2048);
        result.append(31337);
        result.append(0xbeefcace);
        result.append(9000);
        result.append(4711);
        result.append(1337);
        result.append(2100);
        result.append(2600);
        bh.consume(result.toString());
    }

    public void toStringCharWithInt8UTF16(Blackhole bh) {
        StringBuilder result = new StringBuilder();
        result.append('\u4e2d');
        result.append(2048);
        result.append(31337);
        result.append(0xbeefcace);
        result.append(9000);
        result.append(4711);
        result.append(1337);
        result.append(2100);
        result.append(2600);
        bh.consume(result.toString());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



