Skip to content

Latest commit

 

History

History
480 lines (440 loc) · 39.6 KB

File metadata and controls

480 lines (440 loc) · 39.6 KB

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

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9i.large jdk1.8.0_361 7589.221 7667.941 (101.04%)
jdk-11.0.20 7527.31 8524.503 (113.25%)
jdk-17.0.15 9201.798 9547.513 (103.76%)
jdk-21.0.7 9685.718 9839.942 (101.59%)
jdk-24.0.1 9943.62 10378.702 (104.38%)
graalvm_24.0.1+9.1 14059.047 10873.937 (77.34%)
aliyun_ecs.g8y.large zulu8.82.0.21 7734.706 7654.471 (98.96%)
jdk-11.0.20 8302.019 8539.058 (102.86%)
zulu17.54.21 8826.397 9119.245 (103.32%)
jdk-21.0.2 9151.457 9689.532 (105.88%)
jdk-24 10401.767 7717.014 (74.19%)
graalvm_24+36.1 12095.498 10460.311 (86.48%)
orangepi5p zulu8.68.0.21 5580.742 5125.019 (91.83%)
jdk-11.0.19 4897.654 5213.347 (106.45%)
jdk-17.0.7 4633.045 6043.21 (130.44%)
jdk-21 4919.883 5275.529 (107.23%)
jdk-24 5341.116 4947.831 (92.64%)
graalvm_24+36.1 6039.88 7376.252 (122.13%)

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

aliyun ecs spec jdk version jsonb fury
aliyun_ecs.c9i.large jdk1.8.0_361 8229.664 5610.533 (68.17%)
jdk-11.0.20 9619.41 7526.935 (78.25%)
jdk-17.0.15 11492.731 9487.912 (82.56%)
jdk-21.0.7 11561.414 8380.527 (72.49%)
jdk-24.0.1 12828.56 8972.661 (69.94%)
graalvm_24.0.1+9.1 10809.992 7424.887 (68.69%)
aliyun_ecs.g8y.large zulu8.82.0.21 7811.465 7266.592 (93.02%)
jdk-11.0.20 9252.596 9354.602 (101.1%)
zulu17.54.21 9838.493 9916.911 (100.8%)
jdk-21.0.2 9893.571 9233.137 (93.32%)
jdk-24 11445.429 8888.022 (77.66%)
graalvm_24+36.1 11998.681 8093.66 (67.45%)
orangepi5p zulu8.68.0.21 6636.173 5300.877 (79.88%)
jdk-11.0.19 6011.275 5916.454 (98.42%)
jdk-17.0.7 5815.512 6160.236 (105.93%)
jdk-21 6959.415 6028.223 (86.62%)
jdk-24 6085.344 6803.233 (111.8%)
graalvm_24+36.1 6731.911 5775.109 (85.79%)

这个场景是二进制反序列化比较,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 9163.444 4690.479 (51.19%) 803.252 (8.77%) 146.702 (1.6%)
jdk-11.0.20 10298.105 4995.098 (48.51%) 736.86 (7.16%) 151.166 (1.47%)
jdk-17.0.15 11399.09 6957.462 (61.04%) 777.495 (6.82%) 162.832 (1.43%)
jdk-21.0.7 11830.644 6656.706 (56.27%) 824.292 (6.97%) 151.43 (1.28%)
jdk-24.0.1 12079.105 6670.393 (55.22%) 846.919 (7.01%) 157.625 (1.3%)
graalvm_24.0.1+9.1 16531.336 7735.293 (46.79%) 801.398 (4.85%) 158.757 (0.96%)
aliyun_ecs.g8y.large zulu8.82.0.21 8664.051 4958.095 (57.23%) 447.801 (5.17%) 174.057 (2.01%)
jdk-11.0.20 9091.724 5550.932 (61.05%) 409.993 (4.51%) 168.137 (1.85%)
zulu17.54.21 9625.783 5876.667 (61.05%) 561.464 (5.83%) 168.591 (1.75%)
jdk-21.0.2 9663.726 6030.18 (62.4%) 490.401 (5.07%) 173.169 (1.79%)
jdk-24 11682.048 6578.536 (56.31%) 964.994 (8.26%) 184.915 (1.58%)
graalvm_24+36.1 13600.878 7077.471 (52.04%) 671.518 (4.94%) 182.137 (1.34%)
orangepi5p zulu8.68.0.21 6040.161 2719.741 (45.03%) 214.311 (3.55%) 125.679 (2.08%)
jdk-11.0.19 6430.75 3653.04 (56.81%) 234.513 (3.65%) 120.369 (1.87%)
jdk-17.0.7 6879.643 3754.123 (54.57%) 236.959 (3.44%) 130.739 (1.9%)
jdk-21 6860.633 4035.153 (58.82%) 218.55 (3.19%) 126.789 (1.85%)
jdk-24 7227.904 4155.767 (57.5%) 438.609 (6.07%) 123.21 (1.7%)
graalvm_24+36.1 9016.217 4776.887 (52.98%) 282.71 (3.14%) 122.641 (1.36%)

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

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 11181.18 5592.803 (50.02%) 4434.326 (39.66%)
jdk-11.0.20 14036.314 4906.299 (34.95%) 3854.053 (27.46%)
jdk-17.0.15 15857.314 4742.983 (29.91%) 5795.797 (36.55%)
jdk-21.0.7 15864.135 5482.304 (34.56%) 5783.687 (36.46%)
jdk-24.0.1 17329.921 5029.067 (29.02%) 6110.182 (35.26%)
graalvm_24.0.1+9.1 23002.639 5484.199 (23.84%) 8678.238 (37.73%)
aliyun_ecs.g8y.large zulu8.82.0.21 11876.874 4726.268 (39.79%) 3453.897 (29.08%)
jdk-11.0.20 11425.08 5365.139 (46.96%) 3642.925 (31.89%)
zulu17.54.21 12777.434 5673.713 (44.4%) 4899.387 (38.34%)
jdk-21.0.2 12385.461 5517.192 (44.55%) 4914.676 (39.68%)
jdk-24 14772.154 6017.362 (40.73%) 5959.018 (40.34%)
graalvm_24+36.1 22260.845 5517.151 (24.78%) 7592.155 (34.11%)
orangepi5p zulu8.68.0.21 6460.502 3735.326 (57.82%) 2056.663 (31.83%)
jdk-11.0.19 5499.154 3235.658 (58.84%) 2406.112 (43.75%)
jdk-17.0.7 5464.814 3077.951 (56.32%) 2668.608 (48.83%)
jdk-21 7044.605 3066.333 (43.53%) 2980.501 (42.31%)
jdk-24 7416.182 3612.767 (48.71%) 3785.079 (51.04%)
graalvm_24+36.1 8220.306 3114.979 (37.89%) 5075.52 (61.74%)

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

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9i.large jdk1.8.0_361 5093.709 819.156 (16.08%) 151.154 (2.97%)
jdk-11.0.20 5651.178 743.774 (13.16%) 156.695 (2.77%)
jdk-17.0.15 5926.706 783.472 (13.22%) 161.333 (2.72%)
jdk-21.0.7 5835.598 803.858 (13.78%) 151.177 (2.59%)
jdk-24.0.1 6024.684 826.768 (13.72%) 157.399 (2.61%)
graalvm_24.0.1+9.1 6813.714 918.308 (13.48%) 160.349 (2.35%)
aliyun_ecs.g8y.large zulu8.82.0.21 4940.685 456.137 (9.23%) 166.184 (3.36%)
jdk-11.0.20 5474.846 396.583 (7.24%) 167.188 (3.05%)
zulu17.54.21 5513.258 557.718 (10.12%) 167.699 (3.04%)
jdk-21.0.2 5274.888 489.103 (9.27%) 176.616 (3.35%)
jdk-24 5792.034 924.975 (15.97%) 190.789 (3.29%)
graalvm_24+36.1 6503.748 596.018 (9.16%) 186.877 (2.87%)
orangepi5p zulu8.68.0.21 2714.839 229.621 (8.46%) 122.801 (4.52%)
jdk-11.0.19 3039.901 222.145 (7.31%) 121.322 (3.99%)
jdk-17.0.7 3079.202 234.229 (7.61%) 130.902 (4.25%)
jdk-21 2956.233 212.309 (7.18%) 125.84 (4.26%)
jdk-24 2963.166 418.37 (14.12%) 121.212 (4.09%)
graalvm_24+36.1 3805.453 288.541 (7.58%) 123.731 (3.25%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 5108.018 3370.735 (65.99%) 1601.207 (31.35%) 1415.917 (27.72%)
jdk-11.0.20 5288.427 3003.031 (56.78%) 1394.975 (26.38%) 1409.273 (26.65%)
jdk-17.0.15 7133.635 4071.556 (57.08%) 1515.108 (21.24%) 1434.2 (20.1%)
jdk-21.0.7 6966.116 4037.67 (57.96%) 1425.968 (20.47%) 1274.651 (18.3%)
jdk-24.0.1 6861.043 3298.668 (48.08%) 1410.248 (20.55%) 1367.018 (19.92%)
graalvm_24.0.1+9.1 8056.664 4622.182 (57.37%) 1441.558 (17.89%) 1415.636 (17.57%)
aliyun_ecs.g8y.large zulu8.82.0.21 5697.33 3480.657 (61.09%) 1466.874 (25.75%) 1525.482 (26.78%)
jdk-11.0.20 5789.863 3199.499 (55.26%) 1402.783 (24.23%) 1477.624 (25.52%)
zulu17.54.21 6057.09 4265.156 (70.42%) 1467.182 (24.22%) 1530.651 (25.27%)
jdk-21.0.2 6074.743 4243.579 (69.86%) 1361.889 (22.42%) 1363.893 (22.45%)
jdk-24 6737.02 3918.609 (58.17%) 1508.309 (22.39%) 1478.94 (21.95%)
graalvm_24+36.1 7499.5 4436.934 (59.16%) 1466.979 (19.56%) 1498.385 (19.98%)
orangepi5p zulu8.68.0.21 3654.093 2475.983 (67.76%) 1083.056 (29.64%) 910.596 (24.92%)
jdk-11.0.19 3933.327 2348.721 (59.71%) 997.241 (25.35%) 929.863 (23.64%)
jdk-17.0.7 4151.448 3217.154 (77.49%) 1115.734 (26.88%) 974.04 (23.46%)
jdk-21 4072.118 3045.513 (74.79%) 989.837 (24.31%) 858.686 (21.09%)
jdk-24 3787.107 2449.703 (64.69%) 969.901 (25.61%) 830.128 (21.92%)
graalvm_24+36.1 5041.404 3082.905 (61.15%) 960.415 (19.05%) 894.159 (17.74%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2895.954 856.056 (29.56%) 1430.707 (49.4%) 1320.798 (45.61%)
jdk-11.0.20 3681.655 804.279 (21.85%) 1290.433 (35.05%) 1280.673 (34.79%)
jdk-17.0.15 4459.232 940.556 (21.09%) 1358.654 (30.47%) 1354.517 (30.38%)
jdk-21.0.7 4648.107 907.22 (19.52%) 1353.5 (29.12%) 1270.59 (27.34%)
jdk-24.0.1 4740.06 888.599 (18.75%) 1301.079 (27.45%) 1352.873 (28.54%)
graalvm_24.0.1+9.1 4596.84 1218.958 (26.52%) 1353.54 (29.45%) 1332.949 (29%)
aliyun_ecs.g8y.large zulu8.82.0.21 2632.406 977.182 (37.12%) 1409.941 (53.56%) 1409.803 (53.56%)
jdk-11.0.20 4035.448 979.06 (24.26%) 1325.979 (32.86%) 1399.425 (34.68%)
zulu17.54.21 4320.232 1059.818 (24.53%) 1330.837 (30.8%) 1447.854 (33.51%)
jdk-21.0.2 4359.128 976.134 (22.39%) 1270.13 (29.14%) 1273.26 (29.21%)
jdk-24 4864.797 986.188 (20.27%) 1426.1 (29.31%) 1399.439 (28.77%)
graalvm_24+36.1 2380.683 1167.787 (49.05%) 1374.102 (57.72%) 1368.328 (57.48%)
orangepi5p zulu8.68.0.21 2975.678 660.777 (22.21%) 991.865 (33.33%) 867.499 (29.15%)
jdk-11.0.19 2946.283 653.405 (22.18%) 960.944 (32.62%) 875.683 (29.72%)
jdk-17.0.7 3061.792 772.68 (25.24%) 961.009 (31.39%) 880.697 (28.76%)
jdk-21 2924.386 667.23 (22.82%) 889.103 (30.4%) 790.226 (27.02%)
jdk-24 3032.713 619.694 (20.43%) 926.867 (30.56%) 812.101 (26.78%)
graalvm_24+36.1 3300.287 766.968 (23.24%) 882.69 (26.75%) 797.031 (24.15%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2966.743 1646.612 (55.5%) 1732.157 (58.39%) 1126.43 (37.97%)
jdk-11.0.20 2516.099 1266.834 (50.35%) 1418.789 (56.39%) 1035.98 (41.17%)
jdk-17.0.15 3537.466 1718.819 (48.59%) 1584.394 (44.79%) 1106.688 (31.28%)
jdk-21.0.7 3564.296 1499.59 (42.07%) 1522.454 (42.71%) 1053.041 (29.54%)
jdk-24.0.1 3584.242 1284.39 (35.83%) 1495.494 (41.72%) 1324.079 (36.94%)
graalvm_24.0.1+9.1 3618.804 2010.664 (55.56%) 1575.32 (43.53%) 1312.76 (36.28%)
aliyun_ecs.g8y.large zulu8.82.0.21 2760.594 1274.287 (46.16%) 1267.711 (45.92%) 1188.511 (43.05%)
jdk-11.0.20 2587.446 1473.908 (56.96%) 1363.611 (52.7%) 1164.213 (44.99%)
zulu17.54.21 3057.721 1607.277 (52.56%) 1277.641 (41.78%) 1216.532 (39.79%)
jdk-21.0.2 3043.055 1398.59 (45.96%) 1398.983 (45.97%) 1190.046 (39.11%)
jdk-24 3553.475 1540.552 (43.35%) 1540.226 (43.34%) 1311.303 (36.9%)
graalvm_24+36.1 3642.275 2007.966 (55.13%) 1680.077 (46.13%) 1474.869 (40.49%)
orangepi5p zulu8.68.0.21 1721.839 932.776 (54.17%) 974.836 (56.62%) 710.608 (41.27%)
jdk-11.0.19 1874.494 975.369 (52.03%) 1005.955 (53.67%) 683.997 (36.49%)
jdk-17.0.7 2034.961 1078.81 (53.01%) 961.841 (47.27%) 744.983 (36.61%)
jdk-21 1813.599 963.917 (53.15%) 1006.169 (55.48%) 699.315 (38.56%)
jdk-24 1772.388 956.81 (53.98%) 1017.882 (57.43%) 756.358 (42.67%)
graalvm_24+36.1 2146.433 1284.889 (59.86%) 1024.228 (47.72%) 658.802 (30.69%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2321.655 1414.272 (60.92%) 1525.659 (65.71%) 1055.617 (45.47%)
jdk-11.0.20 2093.922 1084.44 (51.79%) 1309.379 (62.53%) 1005.466 (48.02%)
jdk-17.0.15 2702.724 1527.545 (56.52%) 1418.019 (52.47%) 1014.375 (37.53%)
jdk-21.0.7 2741.166 1312.695 (47.89%) 1454.217 (53.05%) 1010.749 (36.87%)
jdk-24.0.1 2840.568 1090.71 (38.4%) 1460.934 (51.43%) 1248.481 (43.95%)
graalvm_24.0.1+9.1 2847.675 1725.124 (60.58%) 1445.761 (50.77%) 1232.23 (43.27%)
aliyun_ecs.g8y.large zulu8.82.0.21 2321.343 1179.535 (50.81%) 1219.721 (52.54%) 1173.779 (50.56%)
jdk-11.0.20 2258.382 1308.472 (57.94%) 1295.817 (57.38%) 1120.587 (49.62%)
zulu17.54.21 2602.484 1423.487 (54.7%) 1306.558 (50.2%) 1146.685 (44.06%)
jdk-21.0.2 2585.32 1255.036 (48.54%) 1267.681 (49.03%) 1085.125 (41.97%)
jdk-24 2885.653 1317.402 (45.65%) 1335.724 (46.29%) 1213.243 (42.04%)
graalvm_24+36.1 3003.775 1718.835 (57.22%) 1499.766 (49.93%) 1347.319 (44.85%)
orangepi5p zulu8.68.0.21 1620.299 822.059 (50.74%) 911.568 (56.26%) 664.806 (41.03%)
jdk-11.0.19 1663.081 774.204 (46.55%) 878.756 (52.84%) 687.447 (41.34%)
jdk-17.0.7 1696.084 999.234 (58.91%) 942.277 (55.56%) 671.805 (39.61%)
jdk-21 1661.846 865.131 (52.06%) 918.983 (55.3%) 680.388 (40.94%)
jdk-24 1590.14 790.566 (49.72%) 962.623 (60.54%) 689.368 (43.35%)
graalvm_24+36.1 1634.379 1111.913 (68.03%) 940.538 (57.55%) 702.938 (43.01%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2539.827 1469.882 (57.87%) 1796.416 (70.73%) 1043.724 (41.09%)
jdk-11.0.20 2476.079 1182.852 (47.77%) 1603.678 (64.77%) 1005.495 (40.61%)
jdk-17.0.15 3474.723 1573.875 (45.29%) 1735.996 (49.96%) 1055.397 (30.37%)
jdk-21.0.7 3496.879 1400.207 (40.04%) 1694.584 (48.46%) 1002.172 (28.66%)
jdk-24.0.1 3546.19 1208.269 (34.07%) 1708.588 (48.18%) 1309.661 (36.93%)
graalvm_24.0.1+9.1 3551.836 1714.891 (48.28%) 1781.956 (50.17%) 1335.51 (37.6%)
aliyun_ecs.g8y.large zulu8.82.0.21 2316.423 1185.55 (51.18%) 1482.129 (63.98%) 1037.348 (44.78%)
jdk-11.0.20 2984.722 1289.708 (43.21%) 1447.246 (48.49%) 1134.85 (38.02%)
zulu17.54.21 3026.61 1379.02 (45.56%) 1433.902 (47.38%) 1172.33 (38.73%)
jdk-21.0.2 3106.935 1296.51 (41.73%) 1560.365 (50.22%) 1111.305 (35.77%)
jdk-24 3601.495 1349.765 (37.48%) 1775.746 (49.31%) 1262.346 (35.05%)
graalvm_24+36.1 3613.34 1589.5 (43.99%) 1705.175 (47.19%) 1441.7 (39.9%)
orangepi5p zulu8.68.0.21 1411.472 809.398 (57.34%) 1124.612 (79.68%) 711.959 (50.44%)
jdk-11.0.19 1750.78 850.403 (48.57%) 1080.811 (61.73%) 706.505 (40.35%)
jdk-17.0.7 1732.513 990.346 (57.16%) 1158.171 (66.85%) 679.635 (39.23%)
jdk-21 1729.771 860.355 (49.74%) 1039.446 (60.09%) 678.306 (39.21%)
jdk-24 1756.94 866.11 (49.3%) 1031.236 (58.7%) 618.068 (35.18%)
graalvm_24+36.1 1752.878 1008.658 (57.54%) 1088.566 (62.1%) 603.791 (34.45%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 2106.888 1244.853 (59.08%) 1601.395 (76.01%) 957.501 (45.45%)
jdk-11.0.20 2079.98 1016.352 (48.86%) 1448.244 (69.63%) 967.433 (46.51%)
jdk-17.0.15 2671.918 1285.892 (48.13%) 1558.964 (58.35%) 992.754 (37.16%)
jdk-21.0.7 2658.557 1189.724 (44.75%) 1596.001 (60.03%) 962.827 (36.22%)
jdk-24.0.1 2775.286 1018.968 (36.72%) 1591.103 (57.33%) 1225.313 (44.15%)
graalvm_24.0.1+9.1 2787.852 1432.178 (51.37%) 1609.004 (57.71%) 1201.536 (43.1%)
aliyun_ecs.g8y.large zulu8.82.0.21 2005.728 1099.543 (54.82%) 1359.142 (67.76%) 1041.305 (51.92%)
jdk-11.0.20 2500.46 1116.009 (44.63%) 1421.089 (56.83%) 1062.219 (42.48%)
zulu17.54.21 2541.706 1249.8 (49.17%) 1473.309 (57.97%) 1115.147 (43.87%)
jdk-21.0.2 2504.574 1144.79 (45.71%) 1385.476 (55.32%) 1053.718 (42.07%)
jdk-24 2930.051 1141.361 (38.95%) 1571.948 (53.65%) 1185.239 (40.45%)
graalvm_24+36.1 2913.599 1384.744 (47.53%) 1543.239 (52.97%) 1261.316 (43.29%)
orangepi5p zulu8.68.0.21 1316.056 686.699 (52.18%) 1120.079 (85.11%) 609.481 (46.31%)
jdk-11.0.19 1639.248 692.586 (42.25%) 1040.344 (63.46%) 646.888 (39.46%)
jdk-17.0.7 1663.232 845.417 (50.83%) 1048.651 (63.05%) 676.843 (40.69%)
jdk-21 1649.355 787.641 (47.75%) 1022.944 (62.02%) 644.276 (39.06%)
jdk-24 1573.01 696.317 (44.27%) 1048.797 (66.67%) 574.522 (36.52%)
graalvm_24+36.1 1609.387 853.965 (53.06%) 981.507 (60.99%) 604.621 (37.57%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 4701.559 2697.3 (57.37%) 1720.365 (36.59%) 1258.232 (26.76%)
jdk-11.0.20 5083.89 2468.01 (48.55%) 1568.54 (30.85%) 1329.032 (26.14%)
jdk-17.0.15 6838.341 2981.649 (43.6%) 1658.157 (24.25%) 1423.712 (20.82%)
jdk-21.0.7 6736.908 3017.846 (44.8%) 1612.424 (23.93%) 1283.035 (19.04%)
jdk-24.0.1 6712.705 2696.685 (40.17%) 1600.638 (23.84%) 1372.501 (20.45%)
graalvm_24.0.1+9.1 7720.774 3252.987 (42.13%) 1608.529 (20.83%) 1400.234 (18.14%)
aliyun_ecs.g8y.large zulu8.82.0.21 5110.083 3037.904 (59.45%) 1572.573 (30.77%) 1398.793 (27.37%)
jdk-11.0.20 5272.68 2599.982 (49.31%) 1509.996 (28.64%) 1397.941 (26.51%)
zulu17.54.21 5895.636 3496.516 (59.31%) 1591.828 (27%) 1543.243 (26.18%)
jdk-21.0.2 5934.174 3482.502 (58.69%) 1520.907 (25.63%) 1327.284 (22.37%)
jdk-24 6807.075 3118.898 (45.82%) 1669.733 (24.53%) 1456.801 (21.4%)
graalvm_24+36.1 7259.357 3069.971 (42.29%) 1505.859 (20.74%) 1467.981 (20.22%)
orangepi5p zulu8.68.0.21 2891.278 1833.605 (63.42%) 1198.468 (41.45%) 809.727 (28.01%)
jdk-11.0.19 1486.941 1785.498 (120.08%) 1074.262 (72.25%) 853.822 (57.42%)
jdk-17.0.7 3977.324 2311.328 (58.11%) 1177.424 (29.6%) 833.948 (20.97%)
jdk-21 3907.053 2140.921 (54.8%) 1055.816 (27.02%) 794.209 (20.33%)
jdk-24 3912.826 1869.068 (47.77%) 1097.903 (28.06%) 815.007 (20.83%)
graalvm_24+36.1 4577.28 1888.966 (41.27%) 949.86 (20.75%) 812.34 (17.75%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 3101.788 795.173 (25.64%) 1628.657 (52.51%) 970.754 (31.3%)
jdk-11.0.20 3580.331 742.421 (20.74%) 1486.631 (41.52%) 1008.319 (28.16%)
jdk-17.0.15 4437.448 847.697 (19.1%) 1474.997 (33.24%) 993.426 (22.39%)
jdk-21.0.7 4552.883 810.259 (17.8%) 1430.042 (31.41%) 976.648 (21.45%)
jdk-24.0.1 4642.635 829.181 (17.86%) 1428.763 (30.77%) 1205.688 (25.97%)
graalvm_24.0.1+9.1 4620.937 1071.268 (23.18%) 1412.454 (30.57%) 1227.838 (26.57%)
aliyun_ecs.g8y.large zulu8.82.0.21 3709.595 922.698 (24.87%) 1485.776 (40.05%) 1023.83 (27.6%)
jdk-11.0.20 2477.453 875.971 (35.36%) 1450.204 (58.54%) 1083.639 (43.74%)
zulu17.54.21 4214.046 974.8 (23.13%) 1474.271 (34.98%) 1127.69 (26.76%)
jdk-21.0.2 4302.299 908.672 (21.12%) 1404.436 (32.64%) 1023.894 (23.8%)
jdk-24 4686.82 906.999 (19.35%) 1452.426 (30.99%) 1162.116 (24.8%)
graalvm_24+36.1 4765.992 1010.149 (21.19%) 1374.768 (28.85%) 1269.127 (26.63%)
orangepi5p zulu8.68.0.21 2088.768 588.394 (28.17%) 1123.248 (53.78%) 630.228 (30.17%)
jdk-11.0.19 2833.308 586.128 (20.69%) 1078.071 (38.05%) 559.182 (19.74%)
jdk-17.0.7 2871.945 630.209 (21.94%) 1013.848 (35.3%) 674.897 (23.5%)
jdk-21 2892.543 592.253 (20.48%) 989.172 (34.2%) 630.856 (21.81%)
jdk-24 2967.124 557.291 (18.78%) 1033.292 (34.82%) 680.053 (22.92%)
graalvm_24+36.1 3060.3 641.336 (20.96%) 896.318 (29.29%) 737.932 (24.11%)

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

aliyun ecs spec jdk version jsonb msgpack protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 10019.09 1836.551 (18.33%) 4784.755 (47.76%)
jdk-11.0.20 15436.881 1856.791 (12.03%) 3858.626 (25%)
jdk-17.0.15 17670.897 1978.519 (11.2%) 5263.524 (29.79%)
jdk-21.0.7 16632.789 1888.48 (11.35%) 5097.35 (30.65%)
jdk-24.0.1 17862.736 1915.611 (10.72%) 4487.059 (25.12%)
graalvm_24.0.1+9.1 16854.115 2182.139 (12.95%) 6165.4 (36.58%)
aliyun_ecs.g8y.large zulu8.82.0.21 9556.795 1481.333 (15.5%) 5163.805 (54.03%)
jdk-11.0.20 12695.256 1726.543 (13.6%) 4050.555 (31.91%)
zulu17.54.21 13846.088 1921.73 (13.88%) 4776.646 (34.5%)
jdk-21.0.2 13440.367 1679.398 (12.5%) 4980.26 (37.05%)
jdk-24 14962.774 2029.051 (13.56%) 4000.766 (26.74%)
graalvm_24+36.1 15889.63 1939.496 (12.21%) 10786.751 (67.89%)
orangepi5p zulu8.68.0.21 7044.944 909.417 (12.91%) 3126.761 (44.38%)
jdk-11.0.19 7755.651 1057.934 (13.64%) 2650.704 (34.18%)
jdk-17.0.7 7644.981 1094.876 (14.32%) 3610.905 (47.23%)
jdk-21 8544.78 1033.701 (12.1%) 3712.066 (43.44%)
jdk-24 9200.685 1068.71 (11.62%) 2485.958 (27.02%)
graalvm_24+36.1 9791.567 1122.819 (11.47%) 4054.697 (41.41%)

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

aliyun ecs spec jdk version jsonb kryo protobuf
aliyun_ecs.c9i.large jdk1.8.0_361 14966.492 4776.826 (31.92%) 4469.987 (29.87%)
jdk-11.0.20 16254.626 4470.487 (27.5%) 5150.587 (31.69%)
jdk-17.0.15 20147.247 6263.24 (31.09%) 5448.953 (27.05%)
jdk-21.0.7 17991.09 5413.186 (30.09%) 5868.05 (32.62%)
jdk-24.0.1 19320.137 5453.919 (28.23%) 5421.129 (28.06%)
graalvm_24.0.1+9.1 17203.341 5831.374 (33.9%) 12080.412 (70.22%)
aliyun_ecs.g8y.large zulu8.82.0.21 8324.923 5962.583 (71.62%) 4900.326 (58.86%)
jdk-11.0.20 12838.54 6139.013 (47.82%) 4782.371 (37.25%)
zulu17.54.21 12283.373 6719.095 (54.7%) 5792.514 (47.16%)
jdk-21.0.2 16235.283 6244.357 (38.46%) 4921.566 (30.31%)
jdk-24 19551.824 6324.169 (32.35%) 5760.946 (29.47%)
graalvm_24+36.1 22319.472 6726.916 (30.14%) 10300.241 (46.15%)
orangepi5p zulu8.68.0.21 8112.982 2793.529 (34.43%) 2774.101 (34.19%)
jdk-11.0.19 8851.273 3530.057 (39.88%) 3231.449 (36.51%)
jdk-17.0.7 9419.245 3891.015 (41.31%) 3353.476 (35.6%)
jdk-21 9241.402 3776.101 (40.86%) 3922.15 (42.44%)
jdk-24 9507.717 3438.382 (36.16%) 3695.348 (38.87%)
graalvm_24+36.1 10255.228 3987.794 (38.89%) 6017.72 (58.68%)

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

aliyun ecs spec jdk version fastjson2JSONB hessian javaSerialize
aliyun_ecs.c9i.large jdk1.8.0_361 4554.729 950.409 (20.87%) 778.792 (17.1%)
jdk-11.0.20 4608.121 929.023 (20.16%) 752.116 (16.32%)
jdk-17.0.15 5591.569 954.301 (17.07%) 742.637 (13.28%)
jdk-21.0.7 5830.807 982.778 (16.85%) 802.559 (13.76%)
jdk-24.0.1 5774.993 1123.391 (19.45%) 1116.645 (19.34%)
graalvm_24.0.1+9.1 5582.96 1324.657 (23.73%) 1074.545 (19.25%)
aliyun_ecs.g8y.large zulu8.82.0.21 5436.082 1362.559 (25.07%) 852.196 (15.68%)
jdk-11.0.20 5139.733 1042.876 (20.29%) 884.975 (17.22%)
zulu17.54.21 4980.837 1304.344 (26.19%) 822.888 (16.52%)
jdk-21.0.2 5549.269 1217.688 (21.94%) 910.363 (16.41%)
jdk-24 5616.759 1286.351 (22.9%) 1196.305 (21.3%)
graalvm_24+36.1 5705.469 1250.275 (21.91%) 1137.895 (19.94%)
orangepi5p zulu8.68.0.21 3508.208 600.43 (17.12%) 542.055 (15.45%)
jdk-11.0.19 3374.241 642.92 (19.05%) 564.431 (16.73%)
jdk-17.0.7 3020.12 656.704 (21.74%) 552.478 (18.29%)
jdk-21 3182.124 650.098 (20.43%) 545.763 (17.15%)
jdk-24 2877.299 642.421 (22.33%) 644.709 (22.41%)
graalvm_24+36.1 3389.88 661.419 (19.51%) 646.041 (19.06%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 6406.332 2148.647 (33.54%) 3215.717 (50.2%) 1464.011 (22.85%)
jdk-11.0.20 6187.121 2496.489 (40.35%) 2891.199 (46.73%) 1002.893 (16.21%)
jdk-17.0.15 6356.723 2168.863 (34.12%) 3029.074 (47.65%) 844.232 (13.28%)
jdk-21.0.7 6798.792 2138.77 (31.46%) 2830.018 (41.63%) 835.368 (12.29%)
jdk-24.0.1 6423.031 2455.751 (38.23%) 2891.509 (45.02%) 821.85 (12.8%)
graalvm_24.0.1+9.1 9966.813 2500.573 (25.09%) 2931.629 (29.41%) 803.712 (8.06%)
aliyun_ecs.g8y.large zulu8.82.0.21 5402.444 2279.013 (42.18%) 2600.689 (48.14%) 1498.272 (27.73%)
jdk-11.0.20 6543.391 2011.633 (30.74%) 2708.948 (41.4%) 1254.129 (19.17%)
zulu17.54.21 6806.752 2127.193 (31.25%) 2780.753 (40.85%) 911.15 (13.39%)
jdk-21.0.2 6549.546 3124.783 (47.71%) 2504.665 (38.24%) 895.213 (13.67%)
jdk-24 7039.277 3162.99 (44.93%) 2872.423 (40.81%) 938.405 (13.33%)
graalvm_24+36.1 7761.711 2687.088 (34.62%) 3119.932 (40.2%) 857.679 (11.05%)
orangepi5p zulu8.68.0.21 4054.64 1661.348 (40.97%) 1806.467 (44.55%) 899.932 (22.2%)
jdk-11.0.19 4421.368 1720.727 (38.92%) 1823.354 (41.24%) 805.512 (18.22%)
jdk-17.0.7 4933.509 2017.006 (40.88%) 1885.218 (38.21%) 720.022 (14.59%)
jdk-21 4805.082 1360.904 (28.32%) 1712.927 (35.65%) 673.414 (14.01%)
jdk-24 4470.039 1402.098 (31.37%) 1751.905 (39.19%) 634.759 (14.2%)
graalvm_24+36.1 6032.936 1645.437 (27.27%) 1788.064 (29.64%) 629.411 (10.43%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 4801.232 2702.905 (56.3%) 2861.021 (59.59%) 1590.591 (33.13%)
jdk-11.0.20 4507.062 2450.255 (54.36%) 2594.617 (57.57%) 1011.304 (22.44%)
jdk-17.0.15 4524.518 2473.877 (54.68%) 2613.622 (57.77%) 879.066 (19.43%)
jdk-21.0.7 3713.853 2525.723 (68.01%) 2641.105 (71.11%) 876.563 (23.6%)
jdk-24.0.1 4640.122 2567.727 (55.34%) 2650.326 (57.12%) 864.638 (18.63%)
graalvm_24.0.1+9.1 4452.517 2620.484 (58.85%) 2505.642 (56.27%) 839.668 (18.86%)
aliyun_ecs.g8y.large zulu8.82.0.21 3603.048 2423.173 (67.25%) 2795.078 (77.58%) 1703.614 (47.28%)
jdk-11.0.20 4494.305 2563.27 (57.03%) 2775.8 (61.76%) 1337.914 (29.77%)
zulu17.54.21 4300.946 2710.339 (63.02%) 2635.073 (61.27%) 935.517 (21.75%)
jdk-21.0.2 5333.297 2570.882 (48.2%) 2683.063 (50.31%) 959.672 (17.99%)
jdk-24 5508.471 2720.447 (49.39%) 2608.2 (47.35%) 980.194 (17.79%)
graalvm_24+36.1 5356.828 2848.696 (53.18%) 3157.063 (58.94%) 915.085 (17.08%)
orangepi5p zulu8.68.0.21 2524.731 1535.202 (60.81%) 1795.964 (71.13%) 982.724 (38.92%)
jdk-11.0.19 2903.65 1604.472 (55.26%) 1872.803 (64.5%) 905.173 (31.17%)
jdk-17.0.7 2805.099 1572.396 (56.05%) 1827.871 (65.16%) 698.491 (24.9%)
jdk-21 3227.982 1518.254 (47.03%) 1789.293 (55.43%) 736.502 (22.82%)
jdk-24 3156.397 1572.868 (49.83%) 1763.934 (55.88%) 676.169 (21.42%)
graalvm_24+36.1 3509.077 1564.327 (44.58%) 1945.559 (55.44%) 683.302 (19.47%)

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

aliyun ecs spec jdk version fastjson2 fastjson1 jackson gson
aliyun_ecs.c9i.large jdk1.8.0_361 5968.785 1889.519 (31.66%) 2592.064 (43.43%) 1249.409 (20.93%)
jdk-11.0.20 6939.453 1862.527 (26.84%) 2681.973 (38.65%) 990.175 (14.27%)
jdk-17.0.15 8403.645 1930.122 (22.97%) 2854.739 (33.97%) 826.642 (9.84%)
jdk-21.0.7 8189.566 1914.319 (23.38%) 3175.555 (38.78%) 833.18 (10.17%)
jdk-24.0.1 8154.204 2210.62 (27.11%) 2761.338 (33.86%) 816.976 (10.02%)
graalvm_24.0.1+9.1 9786.021 2222.226 (22.71%) 3431.356 (35.06%) 789.521 (8.07%)
aliyun_ecs.g8y.large zulu8.82.0.21 5990.312 2896.273 (48.35%) 2916.77 (48.69%) 1330.761 (22.22%)
jdk-11.0.20 6928.398 2725.616 (39.34%) 2496.269 (36.03%) 1267.63 (18.3%)
zulu17.54.21 7393.052 1980.672 (26.79%) 2848.477 (38.53%) 889.496 (12.03%)
jdk-21.0.2 7660.812 1808.986 (23.61%) 2609.217 (34.06%) 843.239 (11.01%)
jdk-24 8116.243 1942.183 (23.93%) 2766.775 (34.09%) 905.074 (11.15%)
graalvm_24+36.1 8517.541 2271.092 (26.66%) 3219.551 (37.8%) 841.51 (9.88%)
orangepi5p zulu8.68.0.21 4909.49 1116.2 (22.74%) 1820.436 (37.08%) 708.217 (14.43%)
jdk-11.0.19 5134.146 2524.146 (49.16%) 1654.863 (32.23%) 755.513 (14.72%)
jdk-17.0.7 5129.181 1284.244 (25.04%) 1884.154 (36.73%) 693.131 (13.51%)
jdk-21 4830.084 1127.228 (23.34%) 1687.851 (34.94%) 660.132 (13.67%)
jdk-24 5168.461 1293.963 (25.04%) 1622.494 (31.39%) 625.875 (12.11%)
graalvm_24+36.1 6873.535 1301.666 (18.94%) 1848.6 (26.89%) 609.768 (8.87%)

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

aliyun ecs spec jdk version fastjson2 jackson
aliyun_ecs.c9i.large jdk1.8.0_361 4369.34 2528.953 (57.88%)
jdk-11.0.20 4149.085 2112.393 (50.91%)
jdk-17.0.15 4505.453 2417.791 (53.66%)
jdk-21.0.7 4575.441 2653.294 (57.99%)
jdk-24.0.1 5155.864 2129.965 (41.31%)
graalvm_24.0.1+9.1 4506.681 2760.101 (61.24%)
aliyun_ecs.g8y.large zulu8.82.0.21 4939.562 3081.144 (62.38%)
jdk-11.0.20 4472.494 2101.911 (47%)
zulu17.54.21 4214.975 2819.12 (66.88%)
jdk-21.0.2 5220.244 2896.026 (55.48%)
jdk-24 6162.044 2311.85 (37.52%)
graalvm_24+36.1 4526.731 3239.267 (71.56%)
orangepi5p zulu8.68.0.21 2937.046 2003.741 (68.22%)
jdk-11.0.19 3112.218 1722.823 (55.36%)
jdk-17.0.7 3016.101 1921.216 (63.7%)
jdk-21 3271.446 1976.782 (60.43%)
jdk-24 3251.382 1430.545 (44%)
graalvm_24+36.1 3057.2 2108.095 (68.96%)