fastjson2/docs/benchmark/benchmark_2.0.59.md

43 KiB
Raw Permalink Blame History

1. EishayFuryCompatibleParse

这个场景是JSONB格式和Fury CompatibleMode反序列化性能比较。基于KeyValue的映射对增加和删除字段的序列化结构都能有很好的兼容性。

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9i.large jdk1.8.0_361 7563.367 7604.469 (100.54%)
jdk-11.0.20 4841.26 7793.575 (160.98%)
jdk-17.0.15 9566.988 9602.977 (100.38%)
jdk-21.0.7 9916.299 9858.032 (99.41%)
jdk-25 10154.38 9873.177 (97.23%)
aliyun_ecs.g8y.large zulu8.82.0.21 8207.91 8188.359 (99.76%)
jdk-11.0.20 9221.803 9618.63 (104.3%)
zulu17.54.21 10063.62 9926.141 (98.63%)
jdk-21.0.2 10355.825 10365.753 (100.1%)
jdk-25 11055.616 8972.175 (81.15%)
orangepi5p zulu8.68.0.21 5797.393 5925.086 (102.2%)
jdk-11.0.19 5504.337 5920.572 (107.56%)
jdk-17.0.7 5755.03 6304.995 (109.56%)
jdk-21 5729.385 5717.329 (99.79%)
jdk-25 5464.105 6090.85 (111.47%)
MacBookM1Pro zulu-8.jdk 26408.673 18068.648 (68.42%)
zulu-11.jdk 18222.239 21305.894 (116.92%)
zulu-17.jdk 27130.1 31248.218 (115.18%)
zulu-21.jdk 28186.723 31707.778 (112.49%)
jdk-25.jdk 29432.235 30233.432 (102.72%)

2. EishayFuryCompatibleWrite

这个场景是JSONB格式和Fury CompatibleMode序列化性能比较。基于KeyValue的映射对增加和删除字段的序列化结构都能有很好的兼容性。

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9i.large jdk1.8.0_361 8064.648 6304.851 (78.18%)
jdk-11.0.20 10392.919 8342.108 (80.27%)
jdk-17.0.15 10985.803 9539.094 (86.83%)
jdk-21.0.7 10917.21 6771.236 (62.02%)
jdk-25 13103.018 8074.482 (61.62%)
aliyun_ecs.g8y.large zulu8.82.0.21 8086.425 7956.344 (98.39%)
jdk-11.0.20 10770.646 9393.002 (87.21%)
zulu17.54.21 10520.613 10576.708 (100.53%)
jdk-21.0.2 10992.972 10701.807 (97.35%)
jdk-25 11869.4 8649.216 (72.87%)
orangepi5p zulu8.68.0.21 6764.952 5354.048 (79.14%)
jdk-11.0.19 6691.019 5484.438 (81.97%)
jdk-17.0.7 6756.619 5171.431 (76.54%)
jdk-21 6767.205 6220.279 (91.92%)
jdk-25 6730.669 4817.887 (71.58%)
MacBookM1Pro zulu-8.jdk 21096.582 11198.195 (53.08%)
zulu-11.jdk 21424.704 12673.592 (59.15%)
zulu-17.jdk 38139.009 15582.321 (40.86%)
zulu-21.jdk 35364.637 16900.321 (47.79%)
jdk-25.jdk 34467.124 17880.007 (51.88%)

3. EishayParseBinary

这个场景是二进制反序列化比较JSONB格式、JSON UTF8编码(fastjson2UTF8Bytes)、hessian、javaSerialize的比较用于Apache dubbo的用户选择二进制协议比较

aliyun ecs spec jdk version jsonb fastjson2UTF8Bytes hessian javaSerialize
aliyun_ecs.c9i.large jdk1.8.0_361 9323.32 4848.485 (52%) 828.446 (8.89%) 150.927 (1.62%)
jdk-11.0.20 10225.125 5016.896 (49.06%) 758.89 (7.42%) 158.852 (1.55%)
jdk-17.0.15 11594.214 6952.873 (59.97%) 796.031 (6.87%) 167.271 (1.44%)
jdk-21.0.7 12000.56 6734.588 (56.12%) 823.46 (6.86%) 157.409 (1.31%)
jdk-25 11943.916 6748.964 (56.51%) 903.505 (7.56%) 182.356 (1.53%)
aliyun_ecs.g8y.large zulu8.82.0.21 9335.167 5292.804 (56.7%) 468.885 (5.02%) 180.319 (1.93%)
jdk-11.0.20 9957.497 5891.639 (59.17%) 396.063 (3.98%) 170.906 (1.72%)
zulu17.54.21 11341.43 6609.492 (58.28%) 595.854 (5.25%) 171.502 (1.51%)
jdk-21.0.2 11537.644 6617.321 (57.35%) 493.881 (4.28%) 177.682 (1.54%)
jdk-25 11894.774 7134.146 (59.98%) 960.543 (8.08%) 194.436 (1.63%)
orangepi5p zulu8.68.0.21 6033.76 2954.948 (48.97%) 223.864 (3.71%) 119.325 (1.98%)
jdk-11.0.19 6490.212 3769.291 (58.08%) 221.831 (3.42%) 120.233 (1.85%)
jdk-17.0.7 6860.053 4104.394 (59.83%) 234.647 (3.42%) 135.887 (1.98%)
jdk-21 6961.631 4022.256 (57.78%) 218.608 (3.14%) 125.147 (1.8%)
jdk-25 7179.67 4134.069 (57.58%) 455.423 (6.34%) 133.123 (1.85%)
MacBookM1Pro zulu-8.jdk 39313.475 18197.978 (46.29%) 687.254 (1.75%) 438.918 (1.12%)
zulu-11.jdk 22322.447 13821.429 (61.92%) 536.302 (2.4%) 312.134 (1.4%)
zulu-17.jdk 43617.983 20683.617 (47.42%) 663.186 (1.52%) 541.468 (1.24%)
zulu-21.jdk 43011.838 20048.674 (46.61%) 719.642 (1.67%) 528.318 (1.23%)
jdk-25.jdk 40751.989 19856.538 (48.73%) 766.182 (1.88%) 598.356 (1.47%)

4. EishayParseBinaryArrayMapping

这个场景是二进制反序列化比较JSONB格式基于字段顺序映射、kryo、protobuf的比较

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 11197.294 5339.163 (47.68%) 4462.427 (39.85%)
jdk-11.0.20 14258.538 4994.01 (35.02%) 3597.244 (25.23%)
jdk-17.0.15 16212.549 5128.306 (31.63%) 5868.913 (36.2%)
jdk-21.0.7 16099.273 4889.933 (30.37%) 5867.751 (36.45%)
jdk-25 18737.733 4993.684 (26.65%) 5774.281 (30.82%)
aliyun_ecs.g8y.large zulu8.82.0.21 12516.307 5198.182 (41.53%) 4138.58 (33.07%)
jdk-11.0.20 12201.533 5977.786 (48.99%) 4433.255 (36.33%)
zulu17.54.21 15141.585 5394.042 (35.62%) 5840.307 (38.57%)
jdk-21.0.2 14939.569 5139.286 (34.4%) 6227.429 (41.68%)
jdk-25 17759.62 6234.848 (35.11%) 6602.309 (37.18%)
orangepi5p zulu8.68.0.21 6324.681 3566.452 (56.39%) 2518.525 (39.82%)
jdk-11.0.19 6899.119 3612.579 (52.36%) 2405.124 (34.86%)
jdk-17.0.7 6830.632 3915.232 (57.32%) 2643.201 (38.7%)
jdk-21 6597.899 3506.03 (53.14%) 2766.985 (41.94%)
jdk-25 6215.006 3173.719 (51.07%) 2817.186 (45.33%)
MacBookM1Pro zulu-8.jdk 51683.128 13237.611 (25.61%) 11098.081 (21.47%)
zulu-11.jdk 29894.144 11023.425 (36.87%) 10596.185 (35.45%)
zulu-17.jdk 58364.204 11904.07 (20.4%) 18660.287 (31.97%)
zulu-21.jdk 57084.382 14793.99 (25.92%) 15643.735 (27.4%)
jdk-25.jdk 59805.512 12056.823 (20.16%) 17114.562 (28.62%)

5. EishayParseBinaryAutoType

这个场景是带类型信息二进制反序列化比较JSONB格式、JSON UTF8编码(fastjson2UTF8Bytes)、hessian、javaSerialize的比较用于Apache dubbo的用户选择二进制协议比较

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9i.large jdk1.8.0_361 5128.322 830.931 (16.2%) 154.426 (3.01%)
jdk-11.0.20 5762.702 760.049 (13.19%) 160.383 (2.78%)
jdk-17.0.15 6009.683 793.506 (13.2%) 167.449 (2.79%)
jdk-21.0.7 5936.065 827.922 (13.95%) 155.994 (2.63%)
jdk-25 6062.031 885.723 (14.61%) 184.361 (3.04%)
aliyun_ecs.g8y.large zulu8.82.0.21 5267.681 487.473 (9.25%) 179.689 (3.41%)
jdk-11.0.20 5761.902 428.518 (7.44%) 172.885 (3%)
zulu17.54.21 6067.261 585.61 (9.65%) 178.49 (2.94%)
jdk-21.0.2 5681.327 534.687 (9.41%) 173.594 (3.06%)
jdk-25 6112.636 969.752 (15.86%) 198.092 (3.24%)
orangepi5p zulu8.68.0.21 2759.43 223.127 (8.09%) 123.818 (4.49%)
jdk-11.0.19 3021.83 238.359 (7.89%) 122.149 (4.04%)
jdk-17.0.7 3232.546 233.911 (7.24%) 131.515 (4.07%)
jdk-21 3015.053 211.917 (7.03%) 126.909 (4.21%)
jdk-25 3173.164 454.867 (14.33%) 131.169 (4.13%)
MacBookM1Pro zulu-8.jdk 18497.668 715.485 (3.87%) 433.619 (2.34%)
zulu-11.jdk 12770.987 568.778 (4.45%) 311.964 (2.44%)
zulu-17.jdk 21078.467 627.322 (2.98%) 547.903 (2.6%)
zulu-21.jdk 20246.743 731.666 (3.61%) 510.771 (2.52%)
jdk-25.jdk 20484.915 842.424 (4.11%) 589.075 (2.88%)

6. EishayParseString

这个场景是将没有格式化的JSON字符串反序列化为JavaBean对象是最常用的场景这个是fastjson1的强项。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 5106.204 3302.844 (64.68%) 1699.81 (33.29%) 1475.005 (28.89%)
jdk-11.0.20 5218.574 3055.214 (58.54%) 1410.221 (27.02%) 1444.096 (27.67%)
jdk-17.0.15 7154.769 4101.525 (57.33%) 1493.554 (20.87%) 1539.538 (21.52%)
jdk-21.0.7 6750.612 4124.942 (61.1%) 1452.36 (21.51%) 1381.306 (20.46%)
jdk-25 7042.347 3307.941 (46.97%) 1478.026 (20.99%) 1364.379 (19.37%)
aliyun_ecs.g8y.large zulu8.82.0.21 6089.238 3898.213 (64.02%) 1655.745 (27.19%) 1524.515 (25.04%)
jdk-11.0.20 6131.767 3502.986 (57.13%) 1503.877 (24.53%) 1475.038 (24.06%)
zulu17.54.21 6632.911 4726.09 (71.25%) 1574.677 (23.74%) 1562.176 (23.55%)
jdk-21.0.2 6696.059 4732.007 (70.67%) 1416.109 (21.15%) 1365.346 (20.39%)
jdk-25 7342.324 4065.783 (55.37%) 1557.111 (21.21%) 1439.586 (19.61%)
orangepi5p zulu8.68.0.21 3793.347 2567.276 (67.68%) 1103.494 (29.09%) 862.452 (22.74%)
jdk-11.0.19 4030.371 2383.515 (59.14%) 1035.319 (25.69%) 924.466 (22.94%)
jdk-17.0.7 4115.361 3305.298 (80.32%) 1088.889 (26.46%) 949.715 (23.08%)
jdk-21 4066.654 3134.348 (77.07%) 1012.277 (24.89%) 847.177 (20.83%)
jdk-25 3920.977 2550.446 (65.05%) 1012.338 (25.82%) 860.433 (21.94%)
MacBookM1Pro zulu-8.jdk 21214.186 11190.083 (52.75%) 4957.441 (23.37%) 5401.486 (25.46%)
zulu-11.jdk 14718.703 6887.363 (46.79%) 3032.207 (20.6%) 3769.002 (25.61%)
zulu-17.jdk 20866.184 15906.149 (76.23%) 4816.607 (23.08%) 5614.118 (26.91%)
zulu-21.jdk 20154.484 16067.92 (79.72%) 5033.806 (24.98%) 5180.872 (25.71%)
jdk-25.jdk 20867.704 11330.251 (54.3%) 4987.848 (23.9%) 5379.49 (25.78%)

7. EishayParseStringPretty

这个场景是将格式化过的JSON字符串反序列化为JavaBean对象

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 3559.762 869.033 (24.41%) 1418.214 (39.84%) 1355.138 (38.07%)
jdk-11.0.20 3698.855 802.578 (21.7%) 1336.265 (36.13%) 1364.324 (36.89%)
jdk-17.0.15 4523.703 951.25 (21.03%) 1367.326 (30.23%) 1352.191 (29.89%)
jdk-21.0.7 4636.905 913.973 (19.71%) 1357.4 (29.27%) 1302.431 (28.09%)
jdk-25 4690.84 904.673 (19.29%) 1360.238 (29%) 1372.587 (29.26%)
aliyun_ecs.g8y.large zulu8.82.0.21 4287.303 1051.546 (24.53%) 1486.333 (34.67%) 1399.732 (32.65%)
jdk-11.0.20 4431.361 1016.877 (22.95%) 1408.168 (31.78%) 1358.651 (30.66%)
zulu17.54.21 4608.664 1150.676 (24.97%) 1411.419 (30.63%) 1436.346 (31.17%)
jdk-21.0.2 4714.07 1035.6 (21.97%) 1333.02 (28.28%) 1290.394 (27.37%)
jdk-25 5027.112 1003.702 (19.97%) 1424.996 (28.35%) 1367.481 (27.2%)
orangepi5p zulu8.68.0.21 3049.06 671.94 (22.04%) 1010.152 (33.13%) 860.306 (28.22%)
jdk-11.0.19 3051.17 666.045 (21.83%) 990.253 (32.45%) 897.519 (29.42%)
jdk-17.0.7 3085.013 750.766 (24.34%) 1024.676 (33.21%) 889.253 (28.82%)
jdk-21 3072.488 669.285 (21.78%) 950.965 (30.95%) 815.424 (26.54%)
jdk-25 3180.879 586.338 (18.43%) 934.11 (29.37%) 826.343 (25.98%)
MacBookM1Pro zulu-8.jdk 14404.335 3401.05 (23.61%) 4549.996 (31.59%) 4920.459 (34.16%)
zulu-11.jdk 10064.068 1919.512 (19.07%) 2785.321 (27.68%) 3367.837 (33.46%)
zulu-17.jdk 16241.331 3093.949 (19.05%) 4182.975 (25.76%) 5217.045 (32.12%)
zulu-21.jdk 14730.589 3896.2 (26.45%) 4630.85 (31.44%) 4834.218 (32.82%)
jdk-25.jdk 15780.974 3242.053 (20.54%) 4518.058 (28.63%) 5125.402 (32.48%)

8. EishayParseTreeString

这个场景是将没有格式化的JSON字符串解析为JSONObject或者HashMap不涉及绑定JavaBean对象。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2917.711 1642.085 (56.28%) 1738.719 (59.59%) 1160.073 (39.76%)
jdk-11.0.20 2530.276 1271.956 (50.27%) 1414.101 (55.89%) 1079.933 (42.68%)
jdk-17.0.15 3533.076 1727.582 (48.9%) 1589.967 (45%) 1113.332 (31.51%)
jdk-21.0.7 3565.104 1486.387 (41.69%) 1527.648 (42.85%) 1063.505 (29.83%)
jdk-25 3641.87 1280.642 (35.16%) 1616.321 (44.38%) 1397.695 (38.38%)
aliyun_ecs.g8y.large zulu8.82.0.21 2984.623 1368.718 (45.86%) 1483.353 (49.7%) 1241.395 (41.59%)
jdk-11.0.20 3249.739 1585.779 (48.8%) 1374.01 (42.28%) 1182.174 (36.38%)
zulu17.54.21 3535.947 1710.611 (48.38%) 1440.118 (40.73%) 1262.363 (35.7%)
jdk-21.0.2 3428.538 1544.794 (45.06%) 1342.72 (39.16%) 1193.53 (34.81%)
jdk-25 3983.052 1609.988 (40.42%) 1560.444 (39.18%) 1349.527 (33.88%)
orangepi5p zulu8.68.0.21 1793.041 949.284 (52.94%) 1080.789 (60.28%) 746.181 (41.62%)
jdk-11.0.19 1851.099 1022.122 (55.22%) 952.918 (51.48%) 723.049 (39.06%)
jdk-17.0.7 2014.356 1164.525 (57.81%) 995.947 (49.44%) 741.508 (36.81%)
jdk-21 1820.337 1033.368 (56.77%) 975.585 (53.59%) 691.287 (37.98%)
jdk-25 2130.301 978.178 (45.92%) 1021.822 (47.97%) 713.018 (33.47%)
MacBookM1Pro zulu-8.jdk 11686.594 5115.219 (43.77%) 4424.386 (37.86%) 4061.204 (34.75%)
zulu-11.jdk 6124.188 3401.666 (55.54%) 3082.058 (50.33%) 3192.547 (52.13%)
zulu-17.jdk 13736.017 5763.724 (41.96%) 4928.755 (35.88%) 4312.469 (31.4%)
zulu-21.jdk 13153.436 5333.273 (40.55%) 4765.027 (36.23%) 4107.93 (31.23%)
jdk-25.jdk 13472.521 4968.647 (36.88%) 4714.131 (34.99%) 4297.21 (31.9%)

9. EishayParseTreeStringPretty

这个场景是将格式化过的字符串解析为JSONObject或者HashMap不涉及绑定JavaBean对象。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2311.172 1413.784 (61.17%) 1509.145 (65.3%) 1075.482 (46.53%)
jdk-11.0.20 2120.334 1081.503 (51.01%) 1320.29 (62.27%) 1013.138 (47.78%)
jdk-17.0.15 2749.542 1533.683 (55.78%) 1443.999 (52.52%) 1042.398 (37.91%)
jdk-21.0.7 2757.8 1314.683 (47.67%) 1466.309 (53.17%) 1025.764 (37.2%)
jdk-25 2869.726 1111.163 (38.72%) 1495.979 (52.13%) 1300.963 (45.33%)
aliyun_ecs.g8y.large zulu8.82.0.21 2515.503 1279.202 (50.85%) 1284.733 (51.07%) 1169.871 (46.51%)
jdk-11.0.20 2768.759 1369.019 (49.45%) 1404.715 (50.73%) 1141.325 (41.22%)
zulu17.54.21 2875.583 1532.098 (53.28%) 1392.225 (48.42%) 1176.607 (40.92%)
jdk-21.0.2 2880.439 1379.522 (47.89%) 1441.292 (50.04%) 1114.131 (38.68%)
jdk-25 3172.086 1369.749 (43.18%) 1405.449 (44.31%) 1237.814 (39.02%)
orangepi5p zulu8.68.0.21 1672.587 791.386 (47.32%) 985.772 (58.94%) 706.456 (42.24%)
jdk-11.0.19 1724.112 791.951 (45.93%) 937.872 (54.4%) 711.562 (41.27%)
jdk-17.0.7 1748.145 1042.111 (59.61%) 907.138 (51.89%) 694.476 (39.73%)
jdk-21 1713.545 889.597 (51.92%) 927.693 (54.14%) 703.585 (41.06%)
jdk-25 1616.45 775.756 (47.99%) 949.695 (58.75%) 666.86 (41.25%)
MacBookM1Pro zulu-8.jdk 10110.96 4296.246 (42.49%) 4280.826 (42.34%) 3638.834 (35.99%)
zulu-11.jdk 5303.702 2940.377 (55.44%) 2815.414 (53.08%) 2946.402 (55.55%)
zulu-17.jdk 10907.661 5166.369 (47.36%) 4231.709 (38.8%) 3918.755 (35.93%)
zulu-21.jdk 10644.901 4777.373 (44.88%) 4276.62 (40.18%) 3869.868 (36.35%)
jdk-25.jdk 10741.182 3744.665 (34.86%) 4401.87 (40.98%) 4067.408 (37.87%)

10. EishayParseTreeUTF8Bytes

这个场景是将没有格式化的JSON字符串UTF8编码的byte[]数组反序列化解析为JSONObject或者HashMap不涉及绑定JavaBean对象。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2759.847 1464.802 (53.08%) 1905.558 (69.05%) 1017.352 (36.86%)
jdk-11.0.20 2627.07 1152.949 (43.89%) 1506.964 (57.36%) 1067.18 (40.62%)
jdk-17.0.15 3516.954 1501.84 (42.7%) 1790.154 (50.9%) 1097.083 (31.19%)
jdk-21.0.7 3531.553 1393.065 (39.45%) 1694.185 (47.97%) 1069.083 (30.27%)
jdk-25 3672.767 1201.609 (32.72%) 1832.394 (49.89%) 1365.749 (37.19%)
aliyun_ecs.g8y.large zulu8.82.0.21 2811.806 1248.103 (44.39%) 1589.154 (56.52%) 1129.14 (40.16%)
jdk-11.0.20 3197.78 1442.676 (45.11%) 1647.132 (51.51%) 1143.741 (35.77%)
zulu17.54.21 3493.026 1518.602 (43.48%) 1656.758 (47.43%) 1242.482 (35.57%)
jdk-21.0.2 3490.811 1447.127 (41.46%) 1674.906 (47.98%) 1145.086 (32.8%)
jdk-25 4024.738 1417.293 (35.21%) 1777.248 (44.16%) 1308.033 (32.5%)
orangepi5p zulu8.68.0.21 1703.812 821.188 (48.2%) 1188.594 (69.76%) 682.127 (40.04%)
jdk-11.0.19 1893.714 879.05 (46.42%) 1100.508 (58.11%) 721.497 (38.1%)
jdk-17.0.7 1883.0 1014.397 (53.87%) 1121.579 (59.56%) 719.967 (38.24%)
jdk-21 1863.255 907.218 (48.69%) 1060.107 (56.9%) 673.002 (36.12%)
jdk-25 1752.113 883.6 (50.43%) 1076.296 (61.43%) 793.458 (45.29%)
MacBookM1Pro zulu-8.jdk 10861.637 4655.824 (42.86%) 5027.743 (46.29%) 4348.484 (40.04%)
zulu-11.jdk 6205.04 3147.986 (50.73%) 3371.189 (54.33%) 3090.124 (49.8%)
zulu-17.jdk 13681.865 5502.746 (40.22%) 5636.546 (41.2%) 4264.634 (31.17%)
zulu-21.jdk 12849.96 4894.375 (38.09%) 5233.266 (40.73%) 4042.245 (31.46%)
jdk-25.jdk 13288.671 4538.036 (34.15%) 5607.198 (42.2%) 4275.815 (32.18%)

11. EishayParseTreeUTF8BytesPretty

这个场景是将格式化过的字符串UTF8编码的byte[]数组反序列化解析为JSONObject或者HashMap不涉及绑定JavaBean对象。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2188.022 1252.272 (57.23%) 1632.086 (74.59%) 984.932 (45.01%)
jdk-11.0.20 2079.466 1017.626 (48.94%) 1410.246 (67.82%) 975.225 (46.9%)
jdk-17.0.15 2687.875 1287.329 (47.89%) 1594.33 (59.32%) 1017.072 (37.84%)
jdk-21.0.7 2741.537 1202.402 (43.86%) 1600.595 (58.38%) 990.441 (36.13%)
jdk-25 2824.661 1006.228 (35.62%) 1590.416 (56.3%) 1285.495 (45.51%)
aliyun_ecs.g8y.large zulu8.82.0.21 2179.617 1135.373 (52.09%) 1314.736 (60.32%) 960.445 (44.06%)
jdk-11.0.20 2730.577 1245.969 (45.63%) 1452.343 (53.19%) 1089.315 (39.89%)
zulu17.54.21 2893.777 1354.645 (46.81%) 1664.15 (57.51%) 1173.701 (40.56%)
jdk-21.0.2 2902.275 1243.953 (42.86%) 1559.506 (53.73%) 1092.403 (37.64%)
jdk-25 3105.786 1199.387 (38.62%) 1721.053 (55.41%) 1224.568 (39.43%)
orangepi5p zulu8.68.0.21 1335.635 707.237 (52.95%) 1063.849 (79.65%) 639.676 (47.89%)
jdk-11.0.19 1672.194 703.576 (42.08%) 971.943 (58.12%) 680.135 (40.67%)
jdk-17.0.7 1649.171 871.644 (52.85%) 1089.665 (66.07%) 657.809 (39.89%)
jdk-21 1704.119 779.349 (45.73%) 1003.567 (58.89%) 635.239 (37.28%)
jdk-25 1658.124 713.877 (43.05%) 1081.28 (65.21%) 621.547 (37.48%)
MacBookM1Pro zulu-8.jdk 9430.585 4004.494 (42.46%) 4884.212 (51.79%) 3743.414 (39.69%)
zulu-11.jdk 5505.714 2717.4 (49.36%) 3318.331 (60.27%) 2814.896 (51.13%)
zulu-17.jdk 10912.99 4452.166 (40.8%) 5178.986 (47.46%) 4136.097 (37.9%)
zulu-21.jdk 10612.646 4236.72 (39.92%) 4846.293 (45.67%) 4019.747 (37.88%)
jdk-25.jdk 10845.102 3688.911 (34.01%) 5349.462 (49.33%) 4261.064 (39.29%)

12. EishayParseUTF8Bytes

这个场景是将没有格式化的JSON字符串UTF8编码的byte[]数组反序列化为JavaBean对象是最常用的场景这个是fastjson1的强项。

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 4667.842 2710.5 (58.07%) 1738.476 (37.24%) 1267.257 (27.15%)
jdk-11.0.20 3848.635 2504.241 (65.07%) 1588.0 (41.26%) 1383.499 (35.95%)
jdk-17.0.15 6829.59 3113.125 (45.58%) 1686.097 (24.69%) 1492.019 (21.85%)
jdk-21.0.7 6958.621 3077.125 (44.22%) 1608.14 (23.11%) 1334.001 (19.17%)
jdk-25 6874.646 2723.543 (39.62%) 1655.453 (24.08%) 1392.183 (20.25%)
aliyun_ecs.g8y.large zulu8.82.0.21 5349.006 3158.844 (59.05%) 1740.297 (32.53%) 1362.977 (25.48%)
jdk-11.0.20 2827.268 2929.754 (103.62%) 1633.476 (57.78%) 1393.787 (49.3%)
zulu17.54.21 6562.789 3770.208 (57.45%) 1724.551 (26.28%) 1522.81 (23.2%)
jdk-21.0.2 6765.466 3690.104 (54.54%) 1563.973 (23.12%) 1359.211 (20.09%)
jdk-25 7320.575 3241.238 (44.28%) 1738.279 (23.75%) 1403.238 (19.17%)
orangepi5p zulu8.68.0.21 3534.145 1883.077 (53.28%) 1238.0 (35.03%) 805.273 (22.79%)
jdk-11.0.19 3815.72 1862.237 (48.8%) 1153.006 (30.22%) 866.495 (22.71%)
jdk-17.0.7 4081.194 2372.431 (58.13%) 1159.302 (28.41%) 863.352 (21.15%)
jdk-21 4061.094 2160.894 (53.21%) 1097.289 (27.02%) 806.651 (19.86%)
jdk-25 3807.858 1926.995 (50.61%) 1127.076 (29.6%) 823.974 (21.64%)
MacBookM1Pro zulu-8.jdk 17830.998 11240.842 (63.04%) 5372.423 (30.13%) 5246.581 (29.42%)
zulu-11.jdk 14219.107 6108.552 (42.96%) 3406.723 (23.96%) 3432.454 (24.14%)
zulu-17.jdk 20903.131 13015.988 (62.27%) 5213.08 (24.94%) 5680.611 (27.18%)
zulu-21.jdk 18920.51 13054.635 (69%) 5774.973 (30.52%) 5075.231 (26.82%)
jdk-25.jdk 20492.651 10898.545 (53.18%) 5745.052 (28.03%) 5333.047 (26.02%)

13. EishayParseUTF8BytesPretty

这个场景是将格式化过的JSON字符串UTF8编码的byte[]数组反序列化为JavaBean对象

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2712.191 811.669 (29.93%) 1564.998 (57.7%) 979.815 (36.13%)
jdk-11.0.20 2927.887 756.355 (25.83%) 1494.448 (51.04%) 994.281 (33.96%)
jdk-17.0.15 4480.739 865.415 (19.31%) 1502.408 (33.53%) 1020.813 (22.78%)
jdk-21.0.7 4541.323 834.108 (18.37%) 1467.441 (32.31%) 993.683 (21.88%)
jdk-25 4642.268 819.101 (17.64%) 1498.484 (32.28%) 1285.107 (27.68%)
aliyun_ecs.g8y.large zulu8.82.0.21 2108.902 945.743 (44.85%) 1594.744 (75.62%) 1030.775 (48.88%)
jdk-11.0.20 2462.124 949.211 (38.55%) 1517.292 (61.63%) 1102.062 (44.76%)
zulu17.54.21 4538.356 1054.141 (23.23%) 1541.936 (33.98%) 1147.835 (25.29%)
jdk-21.0.2 4696.08 947.386 (20.17%) 1437.348 (30.61%) 1075.86 (22.91%)
jdk-25 4932.785 918.464 (18.62%) 1533.155 (31.08%) 1238.278 (25.1%)
orangepi5p zulu8.68.0.21 2487.811 592.143 (23.8%) 1128.321 (45.35%) 622.408 (25.02%)
jdk-11.0.19 2911.859 603.89 (20.74%) 1073.224 (36.86%) 666.532 (22.89%)
jdk-17.0.7 3052.535 669.088 (21.92%) 1092.082 (35.78%) 699.633 (22.92%)
jdk-21 3059.546 603.253 (19.72%) 1030.727 (33.69%) 645.957 (21.11%)
jdk-25 3012.439 575.279 (19.1%) 1040.566 (34.54%) 641.984 (21.31%)
MacBookM1Pro zulu-8.jdk 14376.669 3326.714 (23.14%) 5361.158 (37.29%) 3791.799 (26.37%)
zulu-11.jdk 8635.032 1790.497 (20.74%) 3137.798 (36.34%) 2609.869 (30.22%)
zulu-17.jdk 15576.757 3280.26 (21.06%) 5021.738 (32.24%) 4364.426 (28.02%)
zulu-21.jdk 15189.642 3453.112 (22.73%) 5071.885 (33.39%) 4048.569 (26.65%)
jdk-25.jdk 15840.031 2925.785 (18.47%) 5099.853 (32.2%) 4305.538 (27.18%)

14. EishayWriteBinary

这个场景是二进制序列化比较JSONB格式、JSON UTF8编码(fastjson2UTF8Bytes)、hessian、javaSerialize的比较用于Apache dubbo的用户选择二进制协议比较

aliyun ecs spec jdk version jsonb msgpack protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 10036.528 1821.409 (18.15%) 4288.245 (42.73%)
jdk-11.0.20 12449.745 1824.89 (14.66%) 4037.866 (32.43%)
jdk-17.0.15 17145.515 1939.475 (11.31%) 5513.244 (32.16%)
jdk-21.0.7 15774.031 1930.273 (12.24%) 5893.016 (37.36%)
jdk-25 18788.733 1998.68 (10.64%) 4710.607 (25.07%)
aliyun_ecs.g8y.large zulu8.82.0.21 9398.48 1573.683 (16.74%) 5173.26 (55.04%)
jdk-11.0.20 12098.351 1841.72 (15.22%) 4185.321 (34.59%)
zulu17.54.21 14210.62 1928.415 (13.57%) 5412.344 (38.09%)
jdk-21.0.2 15747.113 1734.588 (11.02%) 5503.917 (34.95%)
jdk-25 16839.828 2151.554 (12.78%) 4979.667 (29.57%)
orangepi5p zulu8.68.0.21 6858.068 945.779 (13.79%) 2898.616 (42.27%)
jdk-11.0.19 7837.314 1093.353 (13.95%) 2571.328 (32.81%)
jdk-17.0.7 5490.633 1137.642 (20.72%) 3792.153 (69.07%)
jdk-21 7182.865 1074.105 (14.95%) 3654.328 (50.88%)
jdk-25 7789.498 1116.947 (14.34%) 2557.604 (32.83%)
MacBookM1Pro zulu-8.jdk 15140.104 5165.774 (34.12%) 16460.789 (108.72%)
zulu-11.jdk 31231.286 3930.324 (12.58%) 9386.863 (30.06%)
zulu-17.jdk 55931.506 7503.76 (13.42%) 18035.498 (32.25%)
zulu-21.jdk 30659.511 7078.732 (23.09%) 22981.544 (74.96%)
jdk-25.jdk 36791.205 6761.296 (18.38%) 14594.757 (39.67%)

15. EishayWriteBinaryArrayMapping

这个场景是二进制序列化比较JSONB格式基于字段顺序映射、kryo、protobuf的比较

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 14055.548 5315.145 (37.82%) 4780.584 (34.01%)
jdk-11.0.20 18001.95 5182.61 (28.79%) 5180.66 (28.78%)
jdk-17.0.15 19623.085 6284.436 (32.03%) 5236.797 (26.69%)
jdk-21.0.7 18119.542 4670.489 (25.78%) 5871.164 (32.4%)
jdk-25 20456.323 5288.77 (25.85%) 6704.098 (32.77%)
aliyun_ecs.g8y.large zulu8.82.0.21 9370.615 5642.198 (60.21%) 4816.831 (51.4%)
jdk-11.0.20 14550.971 5322.525 (36.58%) 5756.187 (39.56%)
zulu17.54.21 15865.584 6686.636 (42.15%) 5409.125 (34.09%)
jdk-21.0.2 12856.223 6307.551 (49.06%) 5413.223 (42.11%)
jdk-25 20370.661 5262.319 (25.83%) 5726.767 (28.11%)
orangepi5p zulu8.68.0.21 7383.017 2780.571 (37.66%) 2583.809 (35%)
jdk-11.0.19 10422.268 3926.888 (37.68%) 3531.667 (33.89%)
jdk-17.0.7 9122.099 4171.731 (45.73%) 4065.107 (44.56%)
jdk-21 10238.048 2586.923 (25.27%) 3744.723 (36.58%)
jdk-25 9898.487 3613.446 (36.51%) 3655.539 (36.93%)
MacBookM1Pro zulu-8.jdk 32988.299 10319.389 (31.28%) 15448.872 (46.83%)
zulu-11.jdk 42218.535 6197.035 (14.68%) 7212.675 (17.08%)
zulu-17.jdk 59312.18 10394.809 (17.53%) 21944.716 (37%)
zulu-21.jdk 49745.769 9236.472 (18.57%) 19724.337 (39.65%)
jdk-25.jdk 52530.084 10090.612 (19.21%) 19099.91 (36.36%)

16. EishayWriteBinaryAutoType

这个场景是带类型信息二进制序列化比较JSONB格式、JSON UTF8编码(fastjson2UTF8Bytes)、hessian、javaSerialize的比较用于Apache dubbo的用户选择二进制协议比较

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9i.large jdk1.8.0_361 4745.585 1022.601 (21.55%) 823.668 (17.36%)
jdk-11.0.20 4733.336 1002.224 (21.17%) 729.348 (15.41%)
jdk-17.0.15 5684.971 1092.469 (19.22%) 744.426 (13.09%)
jdk-21.0.7 5647.369 1079.134 (19.11%) 830.665 (14.71%)
jdk-25 5920.718 1305.842 (22.06%) 1154.299 (19.5%)
aliyun_ecs.g8y.large zulu8.82.0.21 5422.555 1337.688 (24.67%) 852.538 (15.72%)
jdk-11.0.20 5786.735 987.896 (17.07%) 868.151 (15%)
zulu17.54.21 5693.831 1216.229 (21.36%) 888.793 (15.61%)
jdk-21.0.2 5841.758 1204.332 (20.62%) 907.16 (15.53%)
jdk-25 6175.941 1236.403 (20.02%) 1195.957 (19.36%)
orangepi5p zulu8.68.0.21 3562.045 560.83 (15.74%) 548.593 (15.4%)
jdk-11.0.19 3609.443 626.371 (17.35%) 582.163 (16.13%)
jdk-17.0.7 3406.75 659.985 (19.37%) 544.021 (15.97%)
jdk-21 3448.732 654.841 (18.99%) 565.722 (16.4%)
jdk-25 3220.697 645.705 (20.05%) 676.105 (20.99%)
MacBookM1Pro zulu-8.jdk 19408.094 2308.86 (11.9%) 3260.351 (16.8%)
zulu-11.jdk 12349.5 2333.721 (18.9%) 1860.827 (15.07%)
zulu-17.jdk 16573.532 2028.938 (12.24%) 3617.825 (21.83%)
zulu-21.jdk 21013.66 2176.314 (10.36%) 3590.182 (17.08%)
jdk-25.jdk 19432.454 3191.381 (16.42%) 5083.79 (26.16%)

17. EishayWriteString

这个场景是将JavaBean对象序列化为字符串

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 6193.105 2135.29 (34.48%) 3175.85 (51.28%) 1487.745 (24.02%)
jdk-11.0.20 6358.956 2026.838 (31.87%) 3016.06 (47.43%) 1033.278 (16.25%)
jdk-17.0.15 6649.323 2690.504 (40.46%) 3060.763 (46.03%) 862.937 (12.98%)
jdk-21.0.7 6826.557 2181.555 (31.96%) 2861.561 (41.92%) 848.972 (12.44%)
jdk-25 6766.563 2510.263 (37.1%) 2926.609 (43.25%) 842.544 (12.45%)
aliyun_ecs.g8y.large zulu8.82.0.21 5462.131 2234.345 (40.91%) 2697.305 (49.38%) 1576.931 (28.87%)
jdk-11.0.20 6902.748 2208.254 (31.99%) 2921.462 (42.32%) 1315.861 (19.06%)
zulu17.54.21 6867.918 2245.295 (32.69%) 2919.76 (42.51%) 931.631 (13.56%)
jdk-21.0.2 6533.465 1995.852 (30.55%) 2686.237 (41.12%) 914.917 (14%)
jdk-25 6858.218 3396.432 (49.52%) 2886.77 (42.09%) 928.887 (13.54%)
orangepi5p zulu8.68.0.21 4176.255 1332.316 (31.9%) 1782.373 (42.68%) 923.024 (22.1%)
jdk-11.0.19 4708.617 1856.829 (39.43%) 1848.302 (39.25%) 819.074 (17.4%)
jdk-17.0.7 4906.57 1382.273 (28.17%) 1909.376 (38.91%) 636.138 (12.97%)
jdk-21 4787.185 1373.051 (28.68%) 1742.744 (36.4%) 655.177 (13.69%)
jdk-25 5100.52 1452.514 (28.48%) 1837.815 (36.03%) 633.544 (12.42%)
MacBookM1Pro zulu-8.jdk 14894.093 7845.616 (52.68%) 10567.468 (70.95%) 5810.766 (39.01%)
zulu-11.jdk 15720.604 4991.696 (31.75%) 6195.713 (39.41%) 2431.243 (15.47%)
zulu-17.jdk 23947.763 8116.183 (33.89%) 10792.18 (45.07%) 4327.607 (18.07%)
zulu-21.jdk 22032.77 6845.743 (31.07%) 10518.795 (47.74%) 4184.14 (18.99%)
jdk-25.jdk 26866.44 7622.067 (28.37%) 10106.449 (37.62%) 4250.072 (15.82%)

18. EishayWriteStringTree

这个场景是将JSONObject或者Map序列化为字符串

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 4746.094 2646.644 (55.76%) 2865.102 (60.37%) 1523.114 (32.09%)
jdk-11.0.20 3750.623 2455.401 (65.47%) 2566.705 (68.43%) 1271.303 (33.9%)
jdk-17.0.15 4485.283 2520.547 (56.2%) 2704.306 (60.29%) 890.546 (19.85%)
jdk-21.0.7 3707.967 2555.844 (68.93%) 2497.037 (67.34%) 887.381 (23.93%)
jdk-25 4651.418 2614.606 (56.21%) 2585.969 (55.6%) 874.712 (18.81%)
aliyun_ecs.g8y.large zulu8.82.0.21 3611.49 2424.064 (67.12%) 2851.074 (78.94%) 1816.968 (50.31%)
jdk-11.0.20 4409.439 2650.121 (60.1%) 2541.384 (57.64%) 1305.516 (29.61%)
zulu17.54.21 4378.452 2828.454 (64.6%) 2773.514 (63.34%) 958.106 (21.88%)
jdk-21.0.2 5471.14 2691.961 (49.2%) 2800.499 (51.19%) 985.452 (18.01%)
jdk-25 5608.209 2807.7 (50.06%) 2715.26 (48.42%) 1020.31 (18.19%)
orangepi5p zulu8.68.0.21 2561.324 1557.695 (60.82%) 1806.77 (70.54%) 915.181 (35.73%)
jdk-11.0.19 3068.287 1619.661 (52.79%) 1895.819 (61.79%) 909.274 (29.63%)
jdk-17.0.7 2365.812 1662.502 (70.27%) 1720.016 (72.7%) 679.975 (28.74%)
jdk-21 2723.975 1531.51 (56.22%) 1804.457 (66.24%) 679.238 (24.94%)
jdk-25 3236.433 1570.631 (48.53%) 1837.027 (56.76%) 704.733 (21.77%)
MacBookM1Pro zulu-8.jdk 12770.768 8826.857 (69.12%) 10090.244 (79.01%) 6170.048 (48.31%)
zulu-11.jdk 8532.931 6418.869 (75.22%) 5504.665 (64.51%) 2716.111 (31.83%)
zulu-17.jdk 11553.281 6841.381 (59.22%) 8176.629 (70.77%) 4294.841 (37.17%)
zulu-21.jdk 12296.47 7542.99 (61.34%) 8959.993 (72.87%) 4330.971 (35.22%)
jdk-25.jdk 14501.499 9331.656 (64.35%) 9818.964 (67.71%) 4449.25 (30.68%)

19. EishayWriteUTF8Bytes

这个场景是将JavaBean对象序列化为UTF8编码的Bytes

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 6385.907 1932.426 (30.26%) 2766.936 (43.33%) 1317.945 (20.64%)
jdk-11.0.20 7449.644 2251.368 (30.22%) 2650.221 (35.58%) 1000.964 (13.44%)
jdk-17.0.15 8081.055 1937.802 (23.98%) 3033.265 (37.54%) 849.103 (10.51%)
jdk-21.0.7 7553.965 1896.738 (25.11%) 3201.717 (42.38%) 841.568 (11.14%)
jdk-25 8180.27 2566.373 (31.37%) 3007.941 (36.77%) 824.185 (10.08%)
aliyun_ecs.g8y.large zulu8.82.0.21 6423.256 2071.689 (32.25%) 2955.424 (46.01%) 1301.525 (20.26%)
jdk-11.0.20 6685.783 2027.77 (30.33%) 2534.219 (37.9%) 1334.924 (19.97%)
zulu17.54.21 7378.057 2095.854 (28.41%) 2902.074 (39.33%) 916.91 (12.43%)
jdk-21.0.2 7921.211 1780.685 (22.48%) 2589.633 (32.69%) 854.293 (10.78%)
jdk-25 7835.443 1926.463 (24.59%) 2779.352 (35.47%) 921.193 (11.76%)
orangepi5p zulu8.68.0.21 4612.632 1791.354 (38.84%) 1893.678 (41.05%) 717.333 (15.55%)
jdk-11.0.19 5150.923 1242.486 (24.12%) 1701.315 (33.03%) 792.225 (15.38%)
jdk-17.0.7 3887.715 1349.753 (34.72%) 1869.261 (48.08%) 627.821 (16.15%)
jdk-21 5451.587 1217.862 (22.34%) 1737.567 (31.87%) 663.391 (12.17%)
jdk-25 5064.897 1306.903 (25.8%) 1641.053 (32.4%) 617.784 (12.2%)
MacBookM1Pro zulu-8.jdk 22367.526 9797.535 (43.8%) 9881.646 (44.18%) 4842.833 (21.65%)
zulu-11.jdk 14574.338 6094.834 (41.82%) 6178.69 (42.39%) 2375.874 (16.3%)
zulu-17.jdk 24407.039 5697.839 (23.35%) 10562.007 (43.27%) 4077.988 (16.71%)
zulu-21.jdk 22143.574 6716.01 (30.33%) 9741.01 (43.99%) 4234.82 (19.12%)
jdk-25.jdk 26309.006 7165.185 (27.23%) 8744.181 (33.24%) 4197.327 (15.95%)

20. EishayWriteUTF8BytesTree

这个场景是将JSONObject或者Map序列化为UTF8编码的Bytes

aliyun ecs spec jdk version fastjson2 jackson
aliyun_ecs.c9i.large jdk1.8.0_361 4500.613 2599.4 (57.76%)
jdk-11.0.20 3960.225 2125.353 (53.67%)
jdk-17.0.15 4968.31 2536.516 (51.05%)
jdk-21.0.7 5114.171 2604.637 (50.93%)
jdk-25 5392.207 2191.424 (40.64%)
aliyun_ecs.g8y.large zulu8.82.0.21 4813.503 3289.163 (68.33%)
jdk-11.0.20 4645.346 2333.776 (50.24%)
zulu17.54.21 4654.238 2973.002 (63.88%)
jdk-21.0.2 5708.332 2958.745 (51.83%)
jdk-25 6205.615 2307.136 (37.18%)
orangepi5p zulu8.68.0.21 2920.014 2102.0 (71.99%)
jdk-11.0.19 3180.359 1762.259 (55.41%)
jdk-17.0.7 2315.44 1848.9 (79.85%)
jdk-21 2706.084 1973.26 (72.92%)
jdk-25 3112.88 1444.464 (46.4%)
MacBookM1Pro zulu-8.jdk 13905.347 9502.182 (68.33%)
zulu-11.jdk 9014.391 5631.588 (62.47%)
zulu-17.jdk 12662.961 9140.742 (72.18%)
zulu-21.jdk 15316.173 8682.655 (56.69%)
jdk-25.jdk 16883.247 7587.046 (44.94%)