Skip to content

Latest commit

 

History

History
520 lines (480 loc) · 41.6 KB

File metadata and controls

520 lines (480 loc) · 41.6 KB

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

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9a.large jdk1.8.0_361 9132.099 9744.571 (106.71%)
jdk-11.0.20 8678.922 10750.779 (123.87%)
jdk-17.0.15 11263.421 12867.729 (114.24%)
jdk-21.0.7 12104.966 11760.94 (97.16%)
jdk-25 12287.644 13616.639 (110.82%)
aliyun_ecs.c9i.large jdk1.8.0_361 7637.502 7315.898 (95.79%)
jdk-11.0.20 8326.576 8595.788 (103.23%)
jdk-17.0.15 9279.611 9207.481 (99.22%)
jdk-21.0.7 9857.565 9676.024 (98.16%)
jdk-25 10279.084 8782.661 (85.44%)
orangepi5p zulu8.68.0.21 6370.243 6938.647 (108.92%)
jdk-11.0.19 5469.492 6247.537 (114.23%)
jdk-17.0.7 5752.3 7200.872 (125.18%)
jdk-21 6266.535 7432.385 (118.6%)
jdk-25 7300.547 7408.973 (101.49%)
MacBookM1Pro zulu-8.jdk 19232.619 13733.498 (71.41%)
zulu-11.jdk 16944.66 14541.378 (85.82%)
zulu-17.jdk 24572.338 27482.072 (111.84%)
zulu-21.jdk 22594.847 26114.515 (115.58%)
jdk-25.jdk 24577.287 29687.082 (120.79%)

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

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9a.large jdk1.8.0_361 12208.094 8653.413 (70.88%)
jdk-11.0.20 13822.605 11449.389 (82.83%)
jdk-17.0.15 15601.486 12752.238 (81.74%)
jdk-21.0.7 16542.072 11174.581 (67.55%)
jdk-25 17065.85 11998.186 (70.31%)
aliyun_ecs.c9i.large jdk1.8.0_361 9672.029 6184.843 (63.95%)
jdk-11.0.20 9549.907 8604.182 (90.1%)
jdk-17.0.15 11334.687 9861.187 (87%)
jdk-21.0.7 11291.762 7330.759 (64.92%)
jdk-25 12467.929 8628.987 (69.21%)
orangepi5p zulu8.68.0.21 7649.776 6144.606 (80.32%)
jdk-11.0.19 6943.556 6309.657 (90.87%)
jdk-17.0.7 7828.787 6857.743 (87.6%)
jdk-21 7977.407 6951.342 (87.14%)
jdk-25 7440.078 7161.659 (96.26%)
MacBookM1Pro zulu-8.jdk 23201.95 17786.405 (76.66%)
zulu-11.jdk 17834.128 13289.255 (74.52%)
zulu-17.jdk 25571.904 21299.244 (83.29%)
zulu-21.jdk 33813.511 12906.728 (38.17%)
jdk-25.jdk 32690.726 24645.711 (75.39%)

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

aliyun ecs spec jdk version jsonb fastjson2UTF8Bytes hessian javaSerialize
aliyun_ecs.c9a.large jdk1.8.0_361 10277.133 5232.418 (50.91%) 1106.746 (10.77%) 189.247 (1.84%)
jdk-11.0.20 13114.144 6719.675 (51.24%) 1044.861 (7.97%) 198.853 (1.52%)
jdk-17.0.15 14800.034 8687.858 (58.7%) 1086.197 (7.34%) 212.663 (1.44%)
jdk-21.0.7 14864.374 8684.291 (58.42%) 1069.972 (7.2%) 199.82 (1.34%)
jdk-25 14379.871 8661.607 (60.23%) 1221.728 (8.5%) 231.358 (1.61%)
aliyun_ecs.c9i.large jdk1.8.0_361 9295.512 4727.607 (50.86%) 810.942 (8.72%) 151.236 (1.63%)
jdk-11.0.20 10078.309 5125.49 (50.86%) 757.448 (7.52%) 156.447 (1.55%)
jdk-17.0.15 11650.386 6871.026 (58.98%) 791.075 (6.79%) 163.68 (1.4%)
jdk-21.0.7 11929.246 6744.704 (56.54%) 835.698 (7.01%) 155.931 (1.31%)
jdk-25 12008.027 6852.884 (57.07%) 907.641 (7.56%) 184.443 (1.54%)
orangepi5p zulu8.68.0.21 5951.042 3048.839 (51.23%) 211.336 (3.55%) 139.324 (2.34%)
jdk-11.0.19 5825.786 4238.052 (72.75%) 219.854 (3.77%) 126.059 (2.16%)
jdk-17.0.7 7084.627 4610.469 (65.08%) 232.963 (3.29%) 144.555 (2.04%)
jdk-21 7118.08 4588.778 (64.47%) 212.5 (2.99%) 138.884 (1.95%)
jdk-25 5575.012 4818.947 (86.44%) 546.366 (9.8%) 148.63 (2.67%)
MacBookM1Pro zulu-8.jdk 32453.888 14044.499 (43.28%) 614.36 (1.89%) 376.529 (1.16%)
zulu-11.jdk 17608.419 11787.135 (66.94%) 527.955 (3%) 278.4 (1.58%)
zulu-17.jdk 35603.201 18098.261 (50.83%) 583.405 (1.64%) 465.817 (1.31%)
zulu-21.jdk 31508.8 17152.709 (54.44%) 645.974 (2.05%) 453.755 (1.44%)
jdk-25.jdk 31137.951 16902.263 (54.28%) 761.091 (2.44%) 522.594 (1.68%)

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

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9a.large jdk1.8.0_361 13268.443 6791.287 (51.18%) 5098.112 (38.42%)
jdk-11.0.20 17591.962 6716.471 (38.18%) 5833.897 (33.16%)
jdk-17.0.15 20020.973 6802.552 (33.98%) 7452.148 (37.22%)
jdk-21.0.7 21007.865 6267.913 (29.84%) 7823.138 (37.24%)
jdk-25 22568.712 7147.103 (31.67%) 8544.015 (37.86%)
aliyun_ecs.c9i.large jdk1.8.0_361 11243.615 5329.8 (47.4%) 4185.029 (37.22%)
jdk-11.0.20 14369.009 4444.838 (30.93%) 4249.456 (29.57%)
jdk-17.0.15 16612.136 4783.856 (28.8%) 5187.831 (31.23%)
jdk-21.0.7 17384.425 5556.627 (31.96%) 5573.853 (32.06%)
jdk-25 18733.761 5952.209 (31.77%) 6563.254 (35.03%)
orangepi5p zulu8.68.0.21 6459.555 3794.838 (58.75%) 3014.649 (46.67%)
jdk-11.0.19 6745.53 4147.916 (61.49%) 2911.767 (43.17%)
jdk-17.0.7 6852.628 4514.311 (65.88%) 3972.905 (57.98%)
jdk-21 6860.093 4153.612 (60.55%) 4375.564 (63.78%)
jdk-25 6781.115 3528.713 (52.04%) 4523.622 (66.71%)
MacBookM1Pro zulu-8.jdk 40465.771 9365.66 (23.14%) 12224.048 (30.21%)
zulu-11.jdk 23565.715 9763.584 (41.43%) 7645.652 (32.44%)
zulu-17.jdk 44201.335 12572.598 (28.44%) 12354.918 (27.95%)
zulu-21.jdk 47589.713 10687.587 (22.46%) 12945.629 (27.2%)
jdk-25.jdk 46483.296 11268.178 (24.24%) 13947.357 (30.01%)

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

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9a.large jdk1.8.0_361 5327.14 1128.239 (21.18%) 190.793 (3.58%)
jdk-11.0.20 6938.129 1058.062 (15.25%) 195.608 (2.82%)
jdk-17.0.15 7025.132 1087.774 (15.48%) 213.995 (3.05%)
jdk-21.0.7 7134.172 1077.241 (15.1%) 203.995 (2.86%)
jdk-25 7271.885 1214.144 (16.7%) 232.812 (3.2%)
aliyun_ecs.c9i.large jdk1.8.0_361 5122.154 841.352 (16.43%) 150.281 (2.93%)
jdk-11.0.20 5698.368 760.302 (13.34%) 157.994 (2.77%)
jdk-17.0.15 5974.093 792.787 (13.27%) 165.607 (2.77%)
jdk-21.0.7 5922.465 835.363 (14.1%) 156.465 (2.64%)
jdk-25 6070.465 882.024 (14.53%) 184.205 (3.03%)
orangepi5p zulu8.68.0.21 2886.438 219.004 (7.59%) 134.054 (4.64%)
jdk-11.0.19 3031.576 221.37 (7.3%) 134.548 (4.44%)
jdk-17.0.7 3620.502 235.735 (6.51%) 146.389 (4.04%)
jdk-21 3133.3 217.397 (6.94%) 139.735 (4.46%)
jdk-25 3653.344 570.2 (15.61%) 149.048 (4.08%)
MacBookM1Pro zulu-8.jdk 14577.578 567.78 (3.89%) 338.785 (2.32%)
zulu-11.jdk 11337.468 532.838 (4.7%) 263.933 (2.33%)
zulu-17.jdk 18035.47 573.879 (3.18%) 470.278 (2.61%)
zulu-21.jdk 17320.25 635.758 (3.67%) 467.074 (2.7%)
jdk-25.jdk 17208.899 781.795 (4.54%) 512.411 (2.98%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 6190.272 4805.39 (77.63%) 2019.12 (32.62%) 1820.173 (29.4%)
jdk-11.0.20 6568.638 3960.453 (60.29%) 1976.664 (30.09%) 1846.219 (28.11%)
jdk-17.0.15 8966.421 5585.431 (62.29%) 1991.091 (22.21%) 1939.784 (21.63%)
jdk-21.0.7 8445.302 5481.918 (64.91%) 1909.451 (22.61%) 1772.541 (20.99%)
jdk-25 8660.007 4603.978 (53.16%) 1921.638 (22.19%) 1807.174 (20.87%)
aliyun_ecs.c9i.large jdk1.8.0_361 5122.72 3377.121 (65.92%) 1614.365 (31.51%) 1444.982 (28.21%)
jdk-11.0.20 5243.845 3020.496 (57.6%) 1432.524 (27.32%) 1447.335 (27.6%)
jdk-17.0.15 7121.33 4114.004 (57.77%) 1474.509 (20.71%) 1483.679 (20.83%)
jdk-21.0.7 7077.495 4124.061 (58.27%) 1456.507 (20.58%) 1368.491 (19.34%)
jdk-25 6944.647 3317.463 (47.77%) 1452.609 (20.92%) 1405.282 (20.24%)
orangepi5p zulu8.68.0.21 3899.34 2765.954 (70.93%) 1221.207 (31.32%) 938.169 (24.06%)
jdk-11.0.19 4169.686 2586.784 (62.04%) 1137.516 (27.28%) 950.2 (22.79%)
jdk-17.0.7 4804.562 3362.592 (69.99%) 1180.119 (24.56%) 971.957 (20.23%)
jdk-21 4609.003 3448.797 (74.83%) 1110.452 (24.09%) 940.675 (20.41%)
jdk-25 5055.851 2733.12 (54.06%) 1114.906 (22.05%) 863.943 (17.09%)
MacBookM1Pro zulu-8.jdk 15033.861 8526.674 (56.72%) 3802.326 (25.29%) 4262.267 (28.35%)
zulu-11.jdk 11710.728 6009.705 (51.32%) 2761.228 (23.58%) 2983.373 (25.48%)
zulu-17.jdk 18505.141 12771.246 (69.01%) 4158.673 (22.47%) 4851.451 (26.22%)
zulu-21.jdk 17305.292 13873.647 (80.17%) 4401.511 (25.43%) 4724.443 (27.3%)
jdk-25.jdk 16033.396 9556.089 (59.6%) 4238.864 (26.44%) 4683.714 (29.21%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 4928.743 1192.322 (24.19%) 1930.016 (39.16%) 1711.599 (34.73%)
jdk-11.0.20 5113.877 1012.529 (19.8%) 1792.886 (35.06%) 1723.741 (33.71%)
jdk-17.0.15 6034.967 1245.312 (20.63%) 1850.446 (30.66%) 1795.068 (29.74%)
jdk-21.0.7 6092.406 1201.241 (19.72%) 1763.122 (28.94%) 1627.235 (26.71%)
jdk-25 6116.793 1072.567 (17.53%) 1714.713 (28.03%) 1681.104 (27.48%)
aliyun_ecs.c9i.large jdk1.8.0_361 3579.978 867.844 (24.24%) 1492.598 (41.69%) 1325.176 (37.02%)
jdk-11.0.20 3685.444 815.775 (22.14%) 1359.164 (36.88%) 1319.414 (35.8%)
jdk-17.0.15 4557.231 931.313 (20.44%) 1336.912 (29.34%) 1332.247 (29.23%)
jdk-21.0.7 4642.634 920.683 (19.83%) 1328.263 (28.61%) 1298.906 (27.98%)
jdk-25 4752.474 909.708 (19.14%) 1353.798 (28.49%) 1342.2 (28.24%)
orangepi5p zulu8.68.0.21 3330.396 727.515 (21.84%) 1101.941 (33.09%) 892.564 (26.8%)
jdk-11.0.19 3305.879 735.803 (22.26%) 1062.506 (32.14%) 937.818 (28.37%)
jdk-17.0.7 3357.066 834.508 (24.86%) 1106.674 (32.97%) 958.69 (28.56%)
jdk-21 3483.688 737.378 (21.17%) 1030.759 (29.59%) 881.03 (25.29%)
jdk-25 3647.675 714.068 (19.58%) 1048.841 (28.75%) 925.42 (25.37%)
MacBookM1Pro zulu-8.jdk 5154.856 2337.062 (45.34%) 3415.799 (66.26%) 3527.394 (68.43%)
zulu-11.jdk 8415.193 1685.778 (20.03%) 2542.015 (30.21%) 2987.397 (35.5%)
zulu-17.jdk 13986.382 3447.668 (24.65%) 3852.785 (27.55%) 4576.996 (32.72%)
zulu-21.jdk 13533.605 3039.037 (22.46%) 4015.768 (29.67%) 4249.764 (31.4%)
jdk-25.jdk 13423.519 2730.558 (20.34%) 4161.036 (31%) 4350.295 (32.41%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 3784.27 2211.108 (58.43%) 2086.784 (55.14%) 1549.705 (40.95%)
jdk-11.0.20 3436.636 1656.784 (48.21%) 1990.672 (57.93%) 1516.059 (44.11%)
jdk-17.0.15 4491.547 2130.015 (47.42%) 2207.725 (49.15%) 1635.315 (36.41%)
jdk-21.0.7 4550.782 2066.128 (45.4%) 2133.514 (46.88%) 1567.878 (34.45%)
jdk-25 4643.18 1704.891 (36.72%) 2199.515 (47.37%) 1856.778 (39.99%)
aliyun_ecs.c9i.large jdk1.8.0_361 2930.753 1701.473 (58.06%) 1676.487 (57.2%) 1163.579 (39.7%)
jdk-11.0.20 2533.947 1248.753 (49.28%) 1362.809 (53.78%) 1083.841 (42.77%)
jdk-17.0.15 3547.393 1725.06 (48.63%) 1624.642 (45.8%) 1135.982 (32.02%)
jdk-21.0.7 3584.787 1477.22 (41.21%) 1596.335 (44.53%) 1086.408 (30.31%)
jdk-25 3690.098 1284.283 (34.8%) 1577.432 (42.75%) 1398.408 (37.9%)
orangepi5p zulu8.68.0.21 1783.921 1021.694 (57.27%) 1102.581 (61.81%) 819.759 (45.95%)
jdk-11.0.19 1913.02 1047.31 (54.75%) 1139.846 (59.58%) 874.636 (45.72%)
jdk-17.0.7 2282.371 1237.776 (54.23%) 1173.261 (51.41%) 851.469 (37.31%)
jdk-21 2148.861 1089.299 (50.69%) 1101.509 (51.26%) 814.259 (37.89%)
jdk-25 2495.142 1054.383 (42.26%) 1041.954 (41.76%) 895.581 (35.89%)
MacBookM1Pro zulu-8.jdk 8773.708 3638.008 (41.46%) 3361.07 (38.31%) 2923.829 (33.32%)
zulu-11.jdk 5667.93 3007.979 (53.07%) 2840.016 (50.11%) 2475.002 (43.67%)
zulu-17.jdk 11182.439 4613.411 (41.26%) 4072.913 (36.42%) 3646.853 (32.61%)
zulu-21.jdk 11151.587 4622.045 (41.45%) 4342.914 (38.94%) 3605.007 (32.33%)
jdk-25.jdk 11545.161 4106.455 (35.57%) 4155.585 (35.99%) 3022.516 (26.18%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 3176.019 1886.46 (59.4%) 1985.18 (62.51%) 1464.491 (46.11%)
jdk-11.0.20 2768.267 1417.674 (51.21%) 1815.401 (65.58%) 1437.728 (51.94%)
jdk-17.0.15 3442.485 1887.701 (54.84%) 1992.052 (57.87%) 1515.802 (44.03%)
jdk-21.0.7 3448.509 1812.907 (52.57%) 1975.16 (57.28%) 1470.067 (42.63%)
jdk-25 3641.897 1413.314 (38.81%) 2057.738 (56.5%) 1721.429 (47.27%)
aliyun_ecs.c9i.large jdk1.8.0_361 2347.151 1441.643 (61.42%) 1473.362 (62.77%) 1073.08 (45.72%)
jdk-11.0.20 2139.899 1103.359 (51.56%) 1349.91 (63.08%) 1012.687 (47.32%)
jdk-17.0.15 2737.998 1483.659 (54.19%) 1402.718 (51.23%) 1057.831 (38.64%)
jdk-21.0.7 2732.834 1316.859 (48.19%) 1442.718 (52.79%) 1023.807 (37.46%)
jdk-25 2853.454 1139.09 (39.92%) 1470.689 (51.54%) 1307.238 (45.81%)
orangepi5p zulu8.68.0.21 1694.502 919.485 (54.26%) 1007.615 (59.46%) 823.633 (48.61%)
jdk-11.0.19 1836.823 880.214 (47.92%) 926.796 (50.46%) 711.28 (38.72%)
jdk-17.0.7 1955.855 1081.749 (55.31%) 1058.1 (54.1%) 812.156 (41.52%)
jdk-21 1888.364 973.324 (51.54%) 998.253 (52.86%) 713.475 (37.78%)
jdk-25 2061.54 872.689 (42.33%) 1016.667 (49.32%) 780.714 (37.87%)
MacBookM1Pro zulu-8.jdk 7455.817 3264.667 (43.79%) 3301.356 (44.28%) 2927.936 (39.27%)
zulu-11.jdk 4566.955 2156.653 (47.22%) 2551.404 (55.87%) 2483.372 (54.38%)
zulu-17.jdk 9533.238 4640.012 (48.67%) 3949.065 (41.42%) 3570.176 (37.45%)
zulu-21.jdk 9271.726 3896.672 (42.03%) 3841.567 (41.43%) 3458.253 (37.3%)
jdk-25.jdk 9586.602 3228.076 (33.67%) 3993.748 (41.66%) 3357.509 (35.02%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 3127.634 1850.773 (59.17%) 2534.025 (81.02%) 1382.17 (44.19%)
jdk-11.0.20 3236.139 1440.268 (44.51%) 2154.362 (66.57%) 1447.646 (44.73%)
jdk-17.0.15 4462.261 1833.543 (41.09%) 2217.566 (49.7%) 1605.731 (35.98%)
jdk-21.0.7 4516.943 1902.343 (42.12%) 2316.996 (51.3%) 1513.005 (33.5%)
jdk-25 4585.418 1586.28 (34.59%) 2334.076 (50.9%) 1781.801 (38.86%)
aliyun_ecs.c9i.large jdk1.8.0_361 2745.507 1478.357 (53.85%) 1736.38 (63.24%) 1047.604 (38.16%)
jdk-11.0.20 2506.384 1162.539 (46.38%) 1555.297 (62.05%) 1060.953 (42.33%)
jdk-17.0.15 3537.426 1511.231 (42.72%) 1759.752 (49.75%) 1100.591 (31.11%)
jdk-21.0.7 3565.766 1432.008 (40.16%) 1720.213 (48.24%) 1053.88 (29.56%)
jdk-25 3649.816 1245.735 (34.13%) 1820.778 (49.89%) 1370.327 (37.55%)
orangepi5p zulu8.68.0.21 1866.597 899.817 (48.21%) 1244.886 (66.69%) 687.962 (36.86%)
jdk-11.0.19 1778.866 948.715 (53.33%) 1207.593 (67.89%) 811.68 (45.63%)
jdk-17.0.7 2241.761 1106.48 (49.36%) 1234.867 (55.08%) 724.056 (32.3%)
jdk-21 2263.221 990.789 (43.78%) 1204.034 (53.2%) 668.56 (29.54%)
jdk-25 2480.95 935.032 (37.69%) 1378.094 (55.55%) 873.387 (35.2%)
MacBookM1Pro zulu-8.jdk 8322.765 3587.408 (43.1%) 3841.017 (46.15%) 3280.008 (39.41%)
zulu-11.jdk 5902.426 2700.277 (45.75%) 2972.477 (50.36%) 2294.434 (38.87%)
zulu-17.jdk 11476.978 4643.393 (40.46%) 4811.652 (41.92%) 3737.663 (32.57%)
zulu-21.jdk 11259.179 4180.865 (37.13%) 4637.17 (41.19%) 3507.904 (31.16%)
jdk-25.jdk 11279.234 3863.085 (34.25%) 4764.236 (42.24%) 3641.184 (32.28%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 2663.028 1588.03 (59.63%) 2099.818 (78.85%) 1233.19 (46.31%)
jdk-11.0.20 2811.376 1234.475 (43.91%) 1974.559 (70.23%) 1368.451 (48.68%)
jdk-17.0.15 3485.091 1539.338 (44.17%) 2159.976 (61.98%) 1441.754 (41.37%)
jdk-21.0.7 3433.09 1625.43 (47.35%) 2129.088 (62.02%) 1426.825 (41.56%)
jdk-25 3594.016 1282.339 (35.68%) 2262.812 (62.96%) 1669.789 (46.46%)
aliyun_ecs.c9i.large jdk1.8.0_361 2044.296 1237.749 (60.55%) 1675.675 (81.97%) 954.863 (46.71%)
jdk-11.0.20 2157.448 1008.013 (46.72%) 1618.869 (75.04%) 1007.023 (46.68%)
jdk-17.0.15 2688.897 1307.981 (48.64%) 1593.961 (59.28%) 1016.544 (37.81%)
jdk-21.0.7 2728.931 1261.151 (46.21%) 1543.513 (56.56%) 1007.263 (36.91%)
jdk-25 2820.32 1027.067 (36.42%) 1673.818 (59.35%) 1266.589 (44.91%)
orangepi5p zulu8.68.0.21 1573.72 779.374 (49.52%) 1216.15 (77.28%) 607.748 (38.62%)
jdk-11.0.19 1836.426 777.502 (42.34%) 1129.616 (61.51%) 637.696 (34.72%)
jdk-17.0.7 1942.183 927.353 (47.75%) 1123.484 (57.85%) 727.514 (37.46%)
jdk-21 1906.727 858.299 (45.01%) 1076.029 (56.43%) 723.045 (37.92%)
jdk-25 2073.113 778.148 (37.54%) 1257.809 (60.67%) 803.886 (38.78%)
MacBookM1Pro zulu-8.jdk 7323.691 3198.333 (43.67%) 3936.572 (53.75%) 2998.848 (40.95%)
zulu-11.jdk 5092.37 2271.269 (44.6%) 2786.964 (54.73%) 2409.399 (47.31%)
zulu-17.jdk 9250.947 3886.73 (42.01%) 4606.677 (49.8%) 3719.619 (40.21%)
zulu-21.jdk 9173.733 3675.532 (40.07%) 4422.371 (48.21%) 3545.368 (38.65%)
jdk-25.jdk 9439.301 3122.532 (33.08%) 4711.038 (49.91%) 3758.899 (39.82%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 5098.482 3507.505 (68.8%) 2263.921 (44.4%) 1569.688 (30.79%)
jdk-11.0.20 4917.58 3059.546 (62.22%) 2112.018 (42.95%) 1740.608 (35.4%)
jdk-17.0.15 8782.965 3942.881 (44.89%) 2151.075 (24.49%) 1866.58 (21.25%)
jdk-21.0.7 8707.52 3771.047 (43.31%) 2036.832 (23.39%) 1668.487 (19.16%)
jdk-25 8648.498 3403.007 (39.35%) 2081.124 (24.06%) 1746.773 (20.2%)
aliyun_ecs.c9i.large jdk1.8.0_361 4738.02 2699.09 (56.97%) 1773.598 (37.43%) 1248.338 (26.35%)
jdk-11.0.20 5012.872 2498.596 (49.84%) 1658.49 (33.08%) 1342.011 (26.77%)
jdk-17.0.15 6900.467 3112.383 (45.1%) 1686.766 (24.44%) 1468.72 (21.28%)
jdk-21.0.7 6965.419 2979.082 (42.77%) 1667.306 (23.94%) 1334.403 (19.16%)
jdk-25 7012.043 2743.372 (39.12%) 1674.704 (23.88%) 1360.676 (19.4%)
orangepi5p zulu8.68.0.21 3312.34 1910.565 (57.68%) 1274.524 (38.48%) 849.442 (25.64%)
jdk-11.0.19 2951.29 2012.229 (68.18%) 1234.541 (41.83%) 866.415 (29.36%)
jdk-17.0.7 4601.944 2592.089 (56.33%) 1221.911 (26.55%) 871.027 (18.93%)
jdk-21 4630.28 2438.068 (52.65%) 1231.978 (26.61%) 879.996 (19.01%)
jdk-25 4872.281 2089.415 (42.88%) 1252.609 (25.71%) 906.436 (18.6%)
MacBookM1Pro zulu-8.jdk 13886.046 9432.785 (67.93%) 4302.356 (30.98%) 3905.32 (28.12%)
zulu-11.jdk 12288.252 5534.739 (45.04%) 3047.208 (24.8%) 3231.556 (26.3%)
zulu-17.jdk 18348.343 11168.557 (60.87%) 4486.393 (24.45%) 4791.257 (26.11%)
zulu-21.jdk 16189.546 11079.223 (68.43%) 4867.006 (30.06%) 4278.115 (26.43%)
jdk-25.jdk 16968.681 9203.144 (54.24%) 4915.997 (28.97%) 4638.437 (27.34%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 3631.11 1036.382 (28.54%) 2113.226 (58.2%) 1174.368 (32.34%)
jdk-11.0.20 5002.043 930.809 (18.61%) 1952.082 (39.03%) 1398.376 (27.96%)
jdk-17.0.15 6009.423 1055.418 (17.56%) 1940.357 (32.29%) 1432.194 (23.83%)
jdk-21.0.7 5868.856 1054.425 (17.97%) 1895.01 (32.29%) 1444.459 (24.61%)
jdk-25 6037.152 978.408 (16.21%) 1882.786 (31.19%) 1674.335 (27.73%)
aliyun_ecs.c9i.large jdk1.8.0_361 3107.561 809.057 (26.04%) 1608.205 (51.75%) 981.282 (31.58%)
jdk-11.0.20 3643.662 752.173 (20.64%) 1531.814 (42.04%) 994.9 (27.3%)
jdk-17.0.15 4527.838 863.227 (19.06%) 1486.207 (32.82%) 1025.243 (22.64%)
jdk-21.0.7 4596.142 831.539 (18.09%) 1453.602 (31.63%) 1005.117 (21.87%)
jdk-25 4636.693 828.343 (17.86%) 1473.823 (31.79%) 1277.373 (27.55%)
orangepi5p zulu8.68.0.21 2595.558 654.776 (25.23%) 1258.671 (48.49%) 631.34 (24.32%)
jdk-11.0.19 3194.848 657.161 (20.57%) 1192.48 (37.33%) 657.914 (20.59%)
jdk-17.0.7 3229.359 718.963 (22.26%) 1219.865 (37.77%) 692.482 (21.44%)
jdk-21 3337.62 668.872 (20.04%) 1161.478 (34.8%) 650.44 (19.49%)
jdk-25 3262.886 642.451 (19.69%) 1157.926 (35.49%) 792.312 (24.28%)
MacBookM1Pro zulu-8.jdk 10744.18 2407.311 (22.41%) 4156.708 (38.69%) 2812.041 (26.17%)
zulu-11.jdk 8823.582 1709.039 (19.37%) 2888.684 (32.74%) 2449.825 (27.76%)
zulu-17.jdk 13684.132 2700.439 (19.73%) 4540.223 (33.18%) 3626.18 (26.5%)
zulu-21.jdk 13856.466 2820.201 (20.35%) 4555.065 (32.87%) 3639.412 (26.27%)
jdk-25.jdk 13522.838 2879.325 (21.29%) 4717.635 (34.89%) 3655.763 (27.03%)

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

aliyun ecs spec jdk version jsonb msgpack protobuf
aliyun_ecs.c9a.large jdk1.8.0_361 16172.906 2093.648 (12.95%) 6218.665 (38.45%)
jdk-11.0.20 18944.328 2256.897 (11.91%) 5618.324 (29.66%)
jdk-17.0.15 24474.182 2487.748 (10.16%) 6639.265 (27.13%)
jdk-21.0.7 23256.184 2313.703 (9.95%) 7093.137 (30.5%)
jdk-25 22575.548 2393.76 (10.6%) 6117.902 (27.1%)
aliyun_ecs.c9i.large jdk1.8.0_361 13456.151 1859.713 (13.82%) 4462.318 (33.16%)
jdk-11.0.20 12615.877 1899.012 (15.05%) 4089.847 (32.42%)
jdk-17.0.15 17802.046 1997.667 (11.22%) 5520.464 (31.01%)
jdk-21.0.7 15507.918 1897.031 (12.23%) 5904.082 (38.07%)
jdk-25 19244.501 2025.218 (10.52%) 4592.551 (23.86%)
orangepi5p zulu8.68.0.21 8022.11 1109.335 (13.83%) 3098.695 (38.63%)
jdk-11.0.19 8907.053 1220.691 (13.7%) 2723.659 (30.58%)
jdk-17.0.7 8727.918 1221.884 (14%) 3871.433 (44.36%)
jdk-21 8597.548 1106.655 (12.87%) 3858.156 (44.88%)
jdk-25 9048.364 1146.024 (12.67%) 3045.787 (33.66%)
MacBookM1Pro zulu-8.jdk 16666.309 3980.579 (23.88%) 12115.586 (72.7%)
zulu-11.jdk 19181.897 3594.911 (18.74%) 8823.126 (46%)
zulu-17.jdk 23925.294 6437.109 (26.91%) 16142.786 (67.47%)
zulu-21.jdk 25625.125 6356.518 (24.81%) 15687.605 (61.22%)
jdk-25.jdk 44292.389 6269.907 (14.16%) 12050.167 (27.21%)

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

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9a.large jdk1.8.0_361 16973.719 7479.742 (44.07%) 7018.909 (41.35%)
jdk-11.0.20 20507.794 7108.878 (34.66%) 6645.464 (32.4%)
jdk-17.0.15 26697.72 7873.097 (29.49%) 7231.853 (27.09%)
jdk-21.0.7 25034.646 7467.997 (29.83%) 6794.886 (27.14%)
jdk-25 27451.488 6980.02 (25.43%) 8138.945 (29.65%)
aliyun_ecs.c9i.large jdk1.8.0_361 12332.858 5516.453 (44.73%) 4286.707 (34.76%)
jdk-11.0.20 12575.388 4476.462 (35.6%) 4890.302 (38.89%)
jdk-17.0.15 16148.931 5406.137 (33.48%) 5442.51 (33.7%)
jdk-21.0.7 18900.705 5150.62 (27.25%) 5844.96 (30.92%)
jdk-25 21514.99 5733.166 (26.65%) 6767.651 (31.46%)
orangepi5p zulu8.68.0.21 9127.919 3829.532 (41.95%) 3618.762 (39.64%)
jdk-11.0.19 11532.84 4381.248 (37.99%) 4057.821 (35.18%)
jdk-17.0.7 10287.917 3952.903 (38.42%) 4189.855 (40.73%)
jdk-21 11069.992 4420.191 (39.93%) 3876.52 (35.02%)
jdk-25 11329.599 3963.247 (34.98%) 3961.452 (34.97%)
MacBookM1Pro zulu-8.jdk 13002.739 8660.518 (66.61%) 10646.42 (81.88%)
zulu-11.jdk 33231.092 5186.171 (15.61%) 7973.091 (23.99%)
zulu-17.jdk 49769.774 9753.884 (19.6%) 16274.624 (32.7%)
zulu-21.jdk 56446.995 10670.342 (18.9%) 16351.258 (28.97%)
jdk-25.jdk 26230.379 11240.25 (42.85%) 16367.814 (62.4%)

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

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9a.large jdk1.8.0_361 5811.966 1447.562 (24.91%) 998.643 (17.18%)
jdk-11.0.20 6392.454 1408.303 (22.03%) 998.674 (15.62%)
jdk-17.0.15 8068.233 1507.204 (18.68%) 991.487 (12.29%)
jdk-21.0.7 8290.414 1491.678 (17.99%) 1030.334 (12.43%)
jdk-25 7981.62 1542.475 (19.33%) 1392.608 (17.45%)
aliyun_ecs.c9i.large jdk1.8.0_361 4763.893 1017.847 (21.37%) 797.256 (16.74%)
jdk-11.0.20 4868.193 1022.223 (21%) 800.959 (16.45%)
jdk-17.0.15 5605.469 1083.92 (19.34%) 771.369 (13.76%)
jdk-21.0.7 5605.004 1057.246 (18.86%) 844.277 (15.06%)
jdk-25 6028.83 1248.091 (20.7%) 1104.116 (18.31%)
orangepi5p zulu8.68.0.21 3831.525 683.49 (17.84%) 587.249 (15.33%)
jdk-11.0.19 3762.891 679.254 (18.05%) 596.58 (15.85%)
jdk-17.0.7 3179.741 676.802 (21.28%) 635.149 (19.97%)
jdk-21 3458.722 687.553 (19.88%) 624.526 (18.06%)
jdk-25 3336.639 681.877 (20.44%) 768.662 (23.04%)
MacBookM1Pro zulu-8.jdk 15674.938 1938.219 (12.37%) 2276.38 (14.52%)
zulu-11.jdk 10836.236 1946.384 (17.96%) 1671.441 (15.42%)
zulu-17.jdk 19617.272 1927.761 (9.83%) 2946.595 (15.02%)
zulu-21.jdk 16009.185 2183.649 (13.64%) 3211.788 (20.06%)
jdk-25.jdk 17378.348 2808.813 (16.16%) 4219.34 (24.28%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 8898.682 3852.045 (43.29%) 3633.103 (40.83%) 2015.22 (22.65%)
jdk-11.0.20 8927.701 2474.54 (27.72%) 3553.172 (39.8%) 1665.676 (18.66%)
jdk-17.0.15 9374.431 2755.488 (29.39%) 3804.041 (40.58%) 2123.401 (22.65%)
jdk-21.0.7 9390.165 2592.089 (27.6%) 3443.838 (36.67%) 2002.746 (21.33%)
jdk-25 9150.957 2918.45 (31.89%) 3615.777 (39.51%) 2004.578 (21.91%)
aliyun_ecs.c9i.large jdk1.8.0_361 6777.948 2186.747 (32.26%) 3196.335 (47.16%) 1441.42 (21.27%)
jdk-11.0.20 6913.27 1992.84 (28.83%) 2970.982 (42.98%) 1352.238 (19.56%)
jdk-17.0.15 6507.321 2181.419 (33.52%) 3152.925 (48.45%) 1808.278 (27.79%)
jdk-21.0.7 6040.984 2186.938 (36.2%) 2832.327 (46.89%) 1780.248 (29.47%)
jdk-25 6548.936 2499.646 (38.17%) 3053.395 (46.62%) 1735.448 (26.5%)
orangepi5p zulu8.68.0.21 4574.956 1450.326 (31.7%) 1998.354 (43.68%) 1002.119 (21.9%)
jdk-11.0.19 5032.993 1432.069 (28.45%) 1980.643 (39.35%) 910.55 (18.09%)
jdk-17.0.7 5295.671 1514.814 (28.6%) 2102.039 (39.69%) 1183.544 (22.35%)
jdk-21 5235.318 1452.09 (27.74%) 1886.803 (36.04%) 1044.517 (19.95%)
jdk-25 5323.238 1549.549 (29.11%) 1939.541 (36.44%) 960.889 (18.05%)
MacBookM1Pro zulu-8.jdk 16727.565 8569.622 (51.23%) 8222.744 (49.16%) 3770.723 (22.54%)
zulu-11.jdk 12959.646 5928.171 (45.74%) 5379.554 (41.51%) 3067.911 (23.67%)
zulu-17.jdk 16327.22 6272.161 (38.42%) 9322.436 (57.1%) 5416.266 (33.17%)
zulu-21.jdk 20887.84 7543.309 (36.11%) 8504.92 (40.72%) 5330.934 (25.52%)
jdk-25.jdk 23842.133 6480.019 (27.18%) 9639.658 (40.43%) 5025.703 (21.08%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 5593.279 3236.814 (57.87%) 3345.123 (59.81%) 2178.53 (38.95%)
jdk-11.0.20 5679.785 3134.844 (55.19%) 3461.992 (60.95%) 1829.743 (32.22%)
jdk-17.0.15 5466.06 3054.666 (55.88%) 3612.708 (66.09%) 2262.792 (41.4%)
jdk-21.0.7 5486.169 3159.137 (57.58%) 3524.042 (64.24%) 2405.516 (43.85%)
jdk-25 5686.699 3282.796 (57.73%) 3611.111 (63.5%) 2262.838 (39.79%)
aliyun_ecs.c9i.large jdk1.8.0_361 4531.501 2726.143 (60.16%) 2781.968 (61.39%) 1689.535 (37.28%)
jdk-11.0.20 4249.341 2433.101 (57.26%) 2615.715 (61.56%) 1418.164 (33.37%)
jdk-17.0.15 4610.824 2511.358 (54.47%) 2706.679 (58.7%) 1994.403 (43.25%)
jdk-21.0.7 3945.132 2498.313 (63.33%) 2580.832 (65.42%) 2077.81 (52.67%)
jdk-25 4687.942 2643.837 (56.4%) 2482.118 (52.95%) 1901.946 (40.57%)
orangepi5p zulu8.68.0.21 2752.561 1682.639 (61.13%) 1836.85 (66.73%) 1096.422 (39.83%)
jdk-11.0.19 3320.215 1755.8 (52.88%) 2058.439 (62%) 1003.881 (30.24%)
jdk-17.0.7 3010.72 1784.452 (59.27%) 2007.193 (66.67%) 1230.741 (40.88%)
jdk-21 3568.165 1655.87 (46.41%) 2004.546 (56.18%) 1280.215 (35.88%)
jdk-25 3723.831 1776.699 (47.71%) 2044.461 (54.9%) 1189.215 (31.94%)
MacBookM1Pro zulu-8.jdk 8425.21 6522.671 (77.42%) 7790.485 (92.47%) 4751.695 (56.4%)
zulu-11.jdk 9096.637 5354.516 (58.86%) 4997.025 (54.93%) 2821.038 (31.01%)
zulu-17.jdk 10578.046 6562.619 (62.04%) 7425.862 (70.2%) 5685.677 (53.75%)
zulu-21.jdk 13395.786 6535.498 (48.79%) 8697.402 (64.93%) 5959.334 (44.49%)
jdk-25.jdk 12643.689 7038.094 (55.66%) 8705.59 (68.85%) 5359.32 (42.39%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9a.large jdk1.8.0_361 8411.631 2348.065 (27.91%) 3583.42 (42.6%) 1682.887 (20.01%)
jdk-11.0.20 9411.031 2327.677 (24.73%) 3301.694 (35.08%) 1629.976 (17.32%)
jdk-17.0.15 12080.257 2448.555 (20.27%) 3511.114 (29.06%) 2091.03 (17.31%)
jdk-21.0.7 11117.343 2299.571 (20.68%) 3485.151 (31.35%) 1968.931 (17.71%)
jdk-25 11499.951 2559.497 (22.26%) 3353.577 (29.16%) 1983.638 (17.25%)
aliyun_ecs.c9i.large jdk1.8.0_361 6729.508 1899.067 (28.22%) 2723.095 (40.46%) 1365.708 (20.29%)
jdk-11.0.20 6868.32 1832.529 (26.68%) 2690.139 (39.17%) 1238.814 (18.04%)
jdk-17.0.15 8156.918 2361.59 (28.95%) 3029.135 (37.14%) 1785.124 (21.88%)
jdk-21.0.7 8249.461 1951.518 (23.66%) 3270.468 (39.64%) 1776.578 (21.54%)
jdk-25 8071.047 2204.861 (27.32%) 2900.224 (35.93%) 1691.762 (20.96%)
orangepi5p zulu8.68.0.21 5517.773 1376.07 (24.94%) 2123.406 (38.48%) 874.257 (15.84%)
jdk-11.0.19 5634.602 1351.498 (23.99%) 1847.976 (32.8%) 884.289 (15.69%)
jdk-17.0.7 5658.451 1467.753 (25.94%) 2037.143 (36%) 1071.567 (18.94%)
jdk-21 5838.445 1380.652 (23.65%) 1931.359 (33.08%) 999.815 (17.12%)
jdk-25 6132.219 1397.606 (22.79%) 1909.128 (31.13%) 947.932 (15.46%)
MacBookM1Pro zulu-8.jdk 10544.131 5985.84 (56.77%) 7935.475 (75.26%) 3863.088 (36.64%)
zulu-11.jdk 16178.917 4154.841 (25.68%) 4204.336 (25.99%) 2709.065 (16.74%)
zulu-17.jdk 18023.814 5762.867 (31.97%) 8721.267 (48.39%) 5733.038 (31.81%)
zulu-21.jdk 18759.71 5926.233 (31.59%) 8496.811 (45.29%) 5447.18 (29.04%)
jdk-25.jdk 28345.692 6421.137 (22.65%) 8160.18 (28.79%) 4767.098 (16.82%)

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

aliyun ecs spec jdk version fastjson2 jackson
aliyun_ecs.c9a.large jdk1.8.0_361 6590.069 3703.613 (56.2%)
jdk-11.0.20 5329.661 2860.526 (53.67%)
jdk-17.0.15 6102.858 3198.302 (52.41%)
jdk-21.0.7 5957.696 3376.537 (56.68%)
jdk-25 6371.699 2797.907 (43.91%)
aliyun_ecs.c9i.large jdk1.8.0_361 4628.664 2597.405 (56.12%)
jdk-11.0.20 3858.102 2104.415 (54.55%)
jdk-17.0.15 4606.652 2353.196 (51.08%)
jdk-21.0.7 4486.506 2713.896 (60.49%)
jdk-25 5139.364 2168.722 (42.2%)
orangepi5p zulu8.68.0.21 3414.751 2078.251 (60.86%)
jdk-11.0.19 3459.237 1883.182 (54.44%)
jdk-17.0.7 3413.613 2114.488 (61.94%)
jdk-21 3601.252 2143.023 (59.51%)
jdk-25 3728.107 1680.88 (45.09%)
MacBookM1Pro zulu-8.jdk 9321.212 8385.479 (89.96%)
zulu-11.jdk 8451.903 4732.757 (56%)
zulu-17.jdk 14068.378 7392.045 (52.54%)
zulu-21.jdk 11525.775 7972.613 (69.17%)
jdk-25.jdk 13670.236 6327.202 (46.28%)