RFR: 8334342: Add MergeStore JMH benchmarks

Shaojin Wen duke at openjdk.org
Sun Jun 16 14:26:33 UTC 2024


On Sun, 16 Jun 2024 07:17:16 GMT, Shaojin Wen <duke at openjdk.org> wrote:

> [8318446](https://github.com/openjdk/jdk/pull/16245)  brings MergeStore. We need a JMH Benchmark to evaluate the performance of various batch operations and the effect of MergeStore.

# 1. Cases MergeStore does not work

>From the results of running the test, the following method MergeStore does not work


getIntB    
getIntBU   
getIntL    
getIntLU   
getIntRB   
getIntRBU  
getIntRL   
getIntRLU  
getLongB   
getLongBU  
getLongL   
getLongLU  
getLongRB  
getLongRBU 
getLongRL  
getLongRLU 
putChars4UC
setIntB    
setIntBU 
setIntRB    
setIntRBU   
setLongB
setLongBU  
setLongRB  
setLongRBU 


@eme64 Please help me find out what the reason is and whether it can be improved.

# 2. Performance numbers

The names of these cases have the following `B/L/V/U` suffixes, which are:

B BigEndian
L LittleEndian
V VarHandle
U Unsafe
R reverseBytes


## 2.1 MacBook M1 Pro (aarch64)

Benchmark                    Mode  Cnt      Score    Error  Units
MergeStoreBench.getIntB      avgt   15   6286.579 ? 20.457  ns/op
MergeStoreBench.getIntBU     avgt   15   5225.216 ?  8.330  ns/op
MergeStoreBench.getIntBV     avgt   15   1210.682 ?  9.729  ns/op
MergeStoreBench.getIntL      avgt   15   6164.693 ? 10.310  ns/op
MergeStoreBench.getIntLU     avgt   15   5143.012 ? 14.522  ns/op
MergeStoreBench.getIntLV     avgt   15   2559.030 ?  3.875  ns/op
MergeStoreBench.getIntRB     avgt   15   6878.932 ? 33.494  ns/op
MergeStoreBench.getIntRBU    avgt   15   5767.165 ?  5.969  ns/op
MergeStoreBench.getIntRL     avgt   15   6627.529 ? 16.028  ns/op
MergeStoreBench.getIntRLU    avgt   15   5751.723 ? 23.192  ns/op
MergeStoreBench.getIntRU     avgt   15   2545.811 ?  3.665  ns/op
MergeStoreBench.getIntU      avgt   15   2540.611 ?  1.315  ns/op
MergeStoreBench.getLongB     avgt   15  12089.536 ? 14.140  ns/op
MergeStoreBench.getLongBU    avgt   15   9781.314 ? 71.234  ns/op
MergeStoreBench.getLongBV    avgt   15   2592.388 ?  4.432  ns/op
MergeStoreBench.getLongL     avgt   15  12024.902 ? 12.263  ns/op
MergeStoreBench.getLongLU    avgt   15   9678.164 ? 66.240  ns/op
MergeStoreBench.getLongLV    avgt   15   2558.131 ?  4.451  ns/op
MergeStoreBench.getLongRB    avgt   15  12085.246 ? 13.510  ns/op
MergeStoreBench.getLongRBU   avgt   15   9764.272 ? 12.714  ns/op
MergeStoreBench.getLongRL    avgt   15  12030.738 ? 22.437  ns/op
MergeStoreBench.getLongRLU   avgt   15   9653.951 ? 29.618  ns/op
MergeStoreBench.getLongRU    avgt   15   2546.557 ?  2.935  ns/op
MergeStoreBench.getLongU     avgt   15   2540.195 ?  2.042  ns/op
MergeStoreBench.putChars4    avgt   15   8489.149 ? 12.100  ns/op
MergeStoreBench.putChars4UB  avgt   15   3829.348 ?  7.844  ns/op
MergeStoreBench.putChars4UC  avgt   15   4483.231 ?  2.922  ns/op
MergeStoreBench.setIntB      avgt   15   5098.299 ?  5.857  ns/op
MergeStoreBench.setIntBU     avgt   15   5100.068 ?  7.315  ns/op
MergeStoreBench.setIntBV     avgt   15   1225.125 ?  1.650  ns/op
MergeStoreBench.setIntL      avgt   15   2765.106 ?  4.291  ns/op
MergeStoreBench.setIntLU     avgt   15   2574.478 ?  6.680  ns/op
MergeStoreBench.setIntLV     avgt   15   5106.786 ?  1.659  ns/op
MergeStoreBench.setIntRB     avgt   15   5372.028 ? 38.223  ns/op
MergeStoreBench.setIntRBU    avgt   15   5413.775 ? 10.059  ns/op
MergeStoreBench.setIntRL     avgt   15   5289.971 ?  4.359  ns/op
MergeStoreBench.setIntRLU    avgt   15   5125.193 ?  1.667  ns/op
MergeStoreBench.setIntRU     avgt   15   5102.132 ? 10.858  ns/op
MergeStoreBench.setIntU      avgt   15   5104.280 ? 53.560  ns/op
MergeStoreBench.setLongB     avgt   15  10249.911 ? 12.840  ns/op
MergeStoreBench.setLongBU    avgt   15  10231.282 ?  6.696  ns/op
MergeStoreBench.setLongBV    avgt   15   2665.162 ?  5.059  ns/op
MergeStoreBench.setLongL     avgt   15   6306.266 ?  7.843  ns/op
MergeStoreBench.setLongLU    avgt   15   2878.446 ? 62.543  ns/op
MergeStoreBench.setLongLV    avgt   15   2663.849 ?  1.446  ns/op
MergeStoreBench.setLongRB    avgt   15  10250.651 ? 16.368  ns/op
MergeStoreBench.setLongRBU   avgt   15  10237.918 ? 14.213  ns/op
MergeStoreBench.setLongRL    avgt   15   6645.274 ?  9.166  ns/op
MergeStoreBench.setLongRLU   avgt   15   3227.096 ?  2.098  ns/op
MergeStoreBench.setLongRU    avgt   15   2609.076 ?  3.404  ns/op
MergeStoreBench.setLongU     avgt   15   2593.581 ?  1.021  ns/op


## 2.2 MacBook 2018 i9 (x64)
* CPU Intel i9

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15  11342.301 ? 176.256  ns/op
MergeStoreBench.getIntBU     avgt   15   7151.310 ?  75.508  ns/op
MergeStoreBench.getIntBV     avgt   15    280.465 ?   2.483  ns/op
MergeStoreBench.getIntL      avgt   15  11124.116 ? 132.253  ns/op
MergeStoreBench.getIntLU     avgt   15   7126.255 ?  33.276  ns/op
MergeStoreBench.getIntLV     avgt   15   1840.656 ?  25.828  ns/op
MergeStoreBench.getIntRB     avgt   15  12084.764 ? 126.922  ns/op
MergeStoreBench.getIntRBU    avgt   15   7822.741 ? 136.473  ns/op
MergeStoreBench.getIntRL     avgt   15  11370.996 ? 150.874  ns/op
MergeStoreBench.getIntRLU    avgt   15   7638.077 ?  86.311  ns/op
MergeStoreBench.getIntRU     avgt   15   2278.221 ?  19.787  ns/op
MergeStoreBench.getIntU      avgt   15   2063.943 ?  10.099  ns/op
MergeStoreBench.getLongB     avgt   15  22398.302 ? 479.694  ns/op
MergeStoreBench.getLongBU    avgt   15  13656.548 ? 212.759  ns/op
MergeStoreBench.getLongBV    avgt   15    757.250 ?  13.629  ns/op
MergeStoreBench.getLongL     avgt   15  20721.523 ? 186.996  ns/op
MergeStoreBench.getLongLU    avgt   15  13647.936 ? 147.855  ns/op
MergeStoreBench.getLongLV    avgt   15   1855.380 ?  30.576  ns/op
MergeStoreBench.getLongRB    avgt   15  22258.859 ? 363.429  ns/op
MergeStoreBench.getLongRBU   avgt   15  13688.325 ? 111.394  ns/op
MergeStoreBench.getLongRL    avgt   15  20736.818 ? 134.670  ns/op
MergeStoreBench.getLongRLU   avgt   15  13648.559 ? 218.167  ns/op
MergeStoreBench.getLongRU    avgt   15   2962.730 ?  61.445  ns/op
MergeStoreBench.getLongU     avgt   15   2881.851 ?  31.687  ns/op
MergeStoreBench.putChars4    avgt   15   5842.259 ? 166.988  ns/op
MergeStoreBench.putChars4UB  avgt   15   3621.801 ?  36.636  ns/op
MergeStoreBench.putChars4UC  avgt   15   7728.219 ? 599.829  ns/op
MergeStoreBench.setIntB      avgt   15   9754.119 ? 100.943  ns/op
MergeStoreBench.setIntBU     avgt   15  12094.327 ?  88.931  ns/op
MergeStoreBench.setIntBV     avgt   15    546.581 ?  11.151  ns/op
MergeStoreBench.setIntL      avgt   15   2241.645 ?  21.620  ns/op
MergeStoreBench.setIntLU     avgt   15   5032.690 ?  39.638  ns/op
MergeStoreBench.setIntLV     avgt   15    727.206 ?   9.519  ns/op
MergeStoreBench.setIntRB     avgt   15  10787.160 ? 187.849  ns/op
MergeStoreBench.setIntRBU    avgt   15  12464.270 ? 121.011  ns/op
MergeStoreBench.setIntRL     avgt   15   5250.418 ?  85.523  ns/op
MergeStoreBench.setIntRLU    avgt   15   7677.631 ?  80.561  ns/op
MergeStoreBench.setIntRU     avgt   15   1011.738 ?   8.791  ns/op
MergeStoreBench.setIntU      avgt   15    791.924 ?  14.517  ns/op
MergeStoreBench.setLongB     avgt   15  17833.690 ? 127.313  ns/op
MergeStoreBench.setLongBU    avgt   15  26447.098 ? 168.301  ns/op
MergeStoreBench.setLongBV    avgt   15   1071.447 ?   8.947  ns/op
MergeStoreBench.setLongL     avgt   15   3724.440 ?  35.119  ns/op
MergeStoreBench.setLongLU    avgt   15   5339.593 ?  45.358  ns/op
MergeStoreBench.setLongLV    avgt   15   1069.890 ?  16.179  ns/op
MergeStoreBench.setLongRB    avgt   15  18908.125 ? 262.767  ns/op
MergeStoreBench.setLongRBU   avgt   15  27622.437 ? 689.809  ns/op
MergeStoreBench.setLongRL    avgt   15   4338.138 ? 115.879  ns/op
MergeStoreBench.setLongRLU   avgt   15   4585.764 ? 102.305  ns/op
MergeStoreBench.setLongRU    avgt   15   1121.779 ?  36.325  ns/op
MergeStoreBench.setLongU     avgt   15   1075.340 ?  17.020  ns/op


## 2.3 Aliyun ecs.c8a (x64)
* CPU AMD EPYCTM Genoa

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15  11976.614 ±  19.245  ns/op
MergeStoreBench.getIntBU     avgt   15   9054.386 ±  12.848  ns/op
MergeStoreBench.getIntBV     avgt   15    304.320 ±   0.412  ns/op
MergeStoreBench.getIntL      avgt   15  10755.574 ± 360.835  ns/op
MergeStoreBench.getIntLU     avgt   15   8889.977 ±  17.342  ns/op
MergeStoreBench.getIntLV     avgt   15   2229.743 ±   3.334  ns/op
MergeStoreBench.getIntRB     avgt   15  12356.363 ±  17.140  ns/op
MergeStoreBench.getIntRBU    avgt   15  11132.557 ±  21.023  ns/op
MergeStoreBench.getIntRL     avgt   15  11218.259 ±  15.377  ns/op
MergeStoreBench.getIntRLU    avgt   15   9356.533 ±  16.075  ns/op
MergeStoreBench.getIntRU     avgt   15   2511.578 ±   4.710  ns/op
MergeStoreBench.getIntU      avgt   15   2497.917 ±   3.230  ns/op
MergeStoreBench.getLongB     avgt   15  26910.266 ±  54.383  ns/op
MergeStoreBench.getLongBU    avgt   15  14217.696 ±  20.862  ns/op
MergeStoreBench.getLongBV    avgt   15    602.235 ±   0.678  ns/op
MergeStoreBench.getLongL     avgt   15  26889.931 ±  43.526  ns/op
MergeStoreBench.getLongLU    avgt   15  14547.062 ±  39.383  ns/op
MergeStoreBench.getLongLV    avgt   15   2228.017 ±   3.593  ns/op
MergeStoreBench.getLongRB    avgt   15  26901.754 ±  29.490  ns/op
MergeStoreBench.getLongRBU   avgt   15  14212.233 ±  17.917  ns/op
MergeStoreBench.getLongRL    avgt   15  26904.774 ±  53.650  ns/op
MergeStoreBench.getLongRLU   avgt   15  14531.530 ±  26.863  ns/op
MergeStoreBench.getLongRU    avgt   15   3066.434 ±   5.223  ns/op
MergeStoreBench.getLongU     avgt   15   3056.801 ±   4.346  ns/op
MergeStoreBench.putChars4    avgt   15  13433.247 ±  19.357  ns/op
MergeStoreBench.putChars4UB  avgt   15   4209.355 ±  10.661  ns/op
MergeStoreBench.putChars4UC  avgt   15   3388.720 ±   7.222  ns/op
MergeStoreBench.setIntB      avgt   15   8044.968 ±  10.066  ns/op
MergeStoreBench.setIntBU     avgt   15  10359.992 ±  41.852  ns/op
MergeStoreBench.setIntBV     avgt   15    598.579 ±   2.360  ns/op
MergeStoreBench.setIntL      avgt   15   2548.295 ±   5.228  ns/op
MergeStoreBench.setIntLU     avgt   15   6179.865 ±  70.419  ns/op
MergeStoreBench.setIntLV     avgt   15    603.562 ±   1.408  ns/op
MergeStoreBench.setIntRB     avgt   15   9743.462 ±  22.873  ns/op
MergeStoreBench.setIntRBU    avgt   15  10673.845 ±  21.662  ns/op
MergeStoreBench.setIntRL     avgt   15   6216.996 ±   7.323  ns/op
MergeStoreBench.setIntRLU    avgt   15   8407.392 ± 108.065  ns/op
MergeStoreBench.setIntRU     avgt   15    635.986 ±   1.449  ns/op
MergeStoreBench.setIntU      avgt   15    610.444 ±   1.139  ns/op
MergeStoreBench.setLongB     avgt   15  17226.045 ±  32.847  ns/op
MergeStoreBench.setLongBU    avgt   15  21476.791 ±  90.608  ns/op
MergeStoreBench.setLongBV    avgt   15   1184.335 ±   1.624  ns/op
MergeStoreBench.setLongL     avgt   15   3352.579 ±   4.849  ns/op
MergeStoreBench.setLongLU    avgt   15   6227.171 ±   9.784  ns/op
MergeStoreBench.setLongLV    avgt   15   1194.549 ±   2.399  ns/op
MergeStoreBench.setLongRB    avgt   15  17967.391 ±  41.726  ns/op
MergeStoreBench.setLongRBU   avgt   15  21428.757 ±  25.568  ns/op
MergeStoreBench.setLongRL    avgt   15   4035.273 ±   6.881  ns/op
MergeStoreBench.setLongRLU   avgt   15   4858.090 ±  16.189  ns/op
MergeStoreBench.setLongRU    avgt   15   1169.711 ±   2.061  ns/op
MergeStoreBench.setLongU     avgt   15   1196.299 ±   1.978  ns/op


## 2.4 Aliyun ecs.c8i (x64)
CPU CPU Intel® Xeon® Emerald

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15  10515.469 ±  21.610  ns/op
MergeStoreBench.getIntBU     avgt   15   9269.025 ±  16.736  ns/op
MergeStoreBench.getIntBV     avgt   15    255.475 ±   0.853  ns/op
MergeStoreBench.getIntL      avgt   15   9699.152 ±  57.865  ns/op
MergeStoreBench.getIntLU     avgt   15   8984.031 ±  13.596  ns/op
MergeStoreBench.getIntLV     avgt   15   2570.119 ±   1.924  ns/op
MergeStoreBench.getIntRB     avgt   15  11281.847 ±   3.579  ns/op
MergeStoreBench.getIntRBU    avgt   15  10323.475 ±  14.128  ns/op
MergeStoreBench.getIntRL     avgt   15  10566.386 ±   2.524  ns/op
MergeStoreBench.getIntRLU    avgt   15   9432.976 ±   2.876  ns/op
MergeStoreBench.getIntRU     avgt   15   2327.557 ±   0.471  ns/op
MergeStoreBench.getIntU      avgt   15   2311.914 ±   1.782  ns/op
MergeStoreBench.getLongB     avgt   15  21682.355 ±  30.503  ns/op
MergeStoreBench.getLongBU    avgt   15  14674.931 ±   3.452  ns/op
MergeStoreBench.getLongBV    avgt   15    652.253 ±   1.555  ns/op
MergeStoreBench.getLongL     avgt   15  21583.633 ±  28.439  ns/op
MergeStoreBench.getLongLU    avgt   15  14350.307 ±  31.842  ns/op
MergeStoreBench.getLongLV    avgt   15   2575.151 ±   0.376  ns/op
MergeStoreBench.getLongRB    avgt   15  21678.521 ±   5.962  ns/op
MergeStoreBench.getLongRBU   avgt   15  14678.208 ±  23.997  ns/op
MergeStoreBench.getLongRL    avgt   15  21576.705 ±   2.667  ns/op
MergeStoreBench.getLongRLU   avgt   15  14341.769 ±  22.908  ns/op
MergeStoreBench.getLongRU    avgt   15   2986.505 ±   0.574  ns/op
MergeStoreBench.getLongU     avgt   15   2940.918 ±   0.348  ns/op
MergeStoreBench.putChars4    avgt   15  10438.053 ±  15.578  ns/op
MergeStoreBench.putChars4UB  avgt   15   3015.499 ±   7.300  ns/op
MergeStoreBench.putChars4UC  avgt   15   5317.663 ±   3.992  ns/op
MergeStoreBench.setIntB      avgt   15   6885.979 ±  11.822  ns/op
MergeStoreBench.setIntBU     avgt   15  10131.264 ±  30.389  ns/op
MergeStoreBench.setIntBV     avgt   15    898.844 ±   3.806  ns/op
MergeStoreBench.setIntL      avgt   15   2885.903 ±   3.228  ns/op
MergeStoreBench.setIntLU     avgt   15   5282.482 ±  59.298  ns/op
MergeStoreBench.setIntLV     avgt   15    949.442 ±   2.543  ns/op
MergeStoreBench.setIntRB     avgt   15   8152.273 ±  11.990  ns/op
MergeStoreBench.setIntRBU    avgt   15  10604.720 ±  19.430  ns/op
MergeStoreBench.setIntRL     avgt   15   5989.979 ±   4.767  ns/op
MergeStoreBench.setIntRLU    avgt   15   7261.499 ± 120.307  ns/op
MergeStoreBench.setIntRU     avgt   15    960.782 ±   2.784  ns/op
MergeStoreBench.setIntU      avgt   15    989.716 ±   1.030  ns/op
MergeStoreBench.setLongB     avgt   15  15865.777 ±  32.450  ns/op
MergeStoreBench.setLongBU    avgt   15  22843.580 ±  48.434  ns/op
MergeStoreBench.setLongBV    avgt   15   1814.973 ±   7.079  ns/op
MergeStoreBench.setLongL     avgt   15   4346.312 ±   1.318  ns/op
MergeStoreBench.setLongLU    avgt   15   5399.475 ±  35.513  ns/op
MergeStoreBench.setLongLV    avgt   15   1903.106 ±  22.995  ns/op
MergeStoreBench.setLongRB    avgt   15  16980.234 ±  34.819  ns/op
MergeStoreBench.setLongRBU   avgt   15  24924.078 ±  49.285  ns/op
MergeStoreBench.setLongRL    avgt   15   4483.791 ±   6.976  ns/op
MergeStoreBench.setLongRLU   avgt   15   5004.085 ±   3.843  ns/op
MergeStoreBench.setLongRU    avgt   15   1818.725 ±  21.406  ns/op
MergeStoreBench.setLongU     avgt   15   1940.593 ±  21.824  ns/op


## 2.5 Aliyun ecs.c8y (aarch64)
* CPU Aliyun Yitian 710

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15   7693.088 ±   3.311  ns/op
MergeStoreBench.getIntBU     avgt   15   6569.492 ±   4.363  ns/op
MergeStoreBench.getIntBV     avgt   15   1360.788 ±   0.185  ns/op
MergeStoreBench.getIntL      avgt   15   6869.948 ±   0.459  ns/op
MergeStoreBench.getIntLU     avgt   15   6059.390 ±  10.758  ns/op
MergeStoreBench.getIntLV     avgt   15   2753.969 ±   0.147  ns/op
MergeStoreBench.getIntRB     avgt   15   8176.169 ± 108.856  ns/op
MergeStoreBench.getIntRBU    avgt   15   7262.778 ±   2.157  ns/op
MergeStoreBench.getIntRL     avgt   15   7691.955 ±   2.307  ns/op
MergeStoreBench.getIntRLU    avgt   15   6687.164 ±  11.958  ns/op
MergeStoreBench.getIntRU     avgt   15   2816.706 ±   1.032  ns/op
MergeStoreBench.getIntU      avgt   15   2855.242 ±   0.395  ns/op
MergeStoreBench.getLongB     avgt   15  13808.276 ±   5.076  ns/op
MergeStoreBench.getLongBU    avgt   15  11786.525 ±   6.141  ns/op
MergeStoreBench.getLongBV    avgt   15   2792.010 ±   0.671  ns/op
MergeStoreBench.getLongL     avgt   15  13296.684 ±  17.836  ns/op
MergeStoreBench.getLongLU    avgt   15  11210.969 ±   5.916  ns/op
MergeStoreBench.getLongLV    avgt   15   2759.405 ±   0.240  ns/op
MergeStoreBench.getLongRB    avgt   15  13812.198 ±   2.658  ns/op
MergeStoreBench.getLongRBU   avgt   15  11786.747 ±   5.149  ns/op
MergeStoreBench.getLongRL    avgt   15  13300.198 ±  16.842  ns/op
MergeStoreBench.getLongRLU   avgt   15  11208.050 ±   9.084  ns/op
MergeStoreBench.getLongRU    avgt   15   2835.510 ±   0.462  ns/op
MergeStoreBench.getLongU     avgt   15   2864.473 ±   0.705  ns/op
MergeStoreBench.putChars4    avgt   15   8895.844 ±   6.508  ns/op
MergeStoreBench.putChars4UB  avgt   15   5495.596 ±   1.519  ns/op
MergeStoreBench.putChars4UC  avgt   15   5110.665 ±   6.025  ns/op
MergeStoreBench.setIntB      avgt   15   6062.162 ±   4.247  ns/op
MergeStoreBench.setIntBU     avgt   15   6665.214 ±  13.035  ns/op
MergeStoreBench.setIntBV     avgt   15   1362.756 ±   0.087  ns/op
MergeStoreBench.setIntL      avgt   15   2823.779 ±   0.791  ns/op
MergeStoreBench.setIntLU     avgt   15   2766.163 ±   0.179  ns/op
MergeStoreBench.setIntLV     avgt   15   5508.486 ±   1.444  ns/op
MergeStoreBench.setIntRB     avgt   15   7591.497 ±   6.000  ns/op
MergeStoreBench.setIntRBU    avgt   15   7748.780 ±   4.463  ns/op
MergeStoreBench.setIntRL     avgt   15   5517.300 ±   7.851  ns/op
MergeStoreBench.setIntRLU    avgt   15   5622.521 ±   1.091  ns/op
MergeStoreBench.setIntRU     avgt   15   5581.834 ±   1.102  ns/op
MergeStoreBench.setIntU      avgt   15   5463.442 ±   0.682  ns/op
MergeStoreBench.setLongB     avgt   15  13516.164 ±   5.466  ns/op
MergeStoreBench.setLongBU    avgt   15  13614.626 ±  20.629  ns/op
MergeStoreBench.setLongBV    avgt   15   2796.317 ±   0.953  ns/op
MergeStoreBench.setLongL     avgt   15   5549.128 ±  28.272  ns/op
MergeStoreBench.setLongLU    avgt   15   4130.981 ±   1.344  ns/op
MergeStoreBench.setLongLV    avgt   15   2785.515 ±   0.318  ns/op
MergeStoreBench.setLongRB    avgt   15  14287.192 ±  10.265  ns/op
MergeStoreBench.setLongRBU   avgt   15  14499.620 ±  10.026  ns/op
MergeStoreBench.setLongRL    avgt   15   6671.064 ±  21.088  ns/op
MergeStoreBench.setLongRLU   avgt   15   4831.917 ±  11.497  ns/op
MergeStoreBench.setLongRU    avgt   15   3197.165 ±   0.768  ns/op
MergeStoreBench.setLongU     avgt   15   2799.934 ±   1.945  ns/op


## 2.6 Orange Pi 5 Plus (aarch64)
* Rockchip RK3588S (8nm LP process)
* http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-Pro.html

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15  14310.070 ±  80.699  ns/op
MergeStoreBench.getIntBU     avgt   15  12523.180 ±  30.688  ns/op
MergeStoreBench.getIntBV     avgt   15   1846.502 ±   5.312  ns/op
MergeStoreBench.getIntL      avgt   15  12956.229 ±  24.863  ns/op
MergeStoreBench.getIntLU     avgt   15  11325.391 ±  38.825  ns/op
MergeStoreBench.getIntLV     avgt   15   3768.575 ±  20.082  ns/op
MergeStoreBench.getIntRB     avgt   15  15539.092 ±  40.245  ns/op
MergeStoreBench.getIntRBU    avgt   15  13862.743 ±  54.321  ns/op
MergeStoreBench.getIntRL     avgt   15  14186.647 ±  35.623  ns/op
MergeStoreBench.getIntRLU    avgt   15  12573.647 ±  23.523  ns/op
MergeStoreBench.getIntRU     avgt   15   4368.234 ±  23.460  ns/op
MergeStoreBench.getIntU      avgt   15   3700.248 ±  17.718  ns/op
MergeStoreBench.getLongB     avgt   15  26513.593 ±  84.012  ns/op
MergeStoreBench.getLongBU    avgt   15  22001.241 ±  47.761  ns/op
MergeStoreBench.getLongBV    avgt   15   4148.252 ±  15.058  ns/op
MergeStoreBench.getLongL     avgt   15  25282.815 ± 130.802  ns/op
MergeStoreBench.getLongLU    avgt   15  21206.815 ±  85.923  ns/op
MergeStoreBench.getLongLV    avgt   15   3777.233 ±   7.117  ns/op
MergeStoreBench.getLongRB    avgt   15  26485.481 ±  40.748  ns/op
MergeStoreBench.getLongRBU   avgt   15  21973.762 ±  32.260  ns/op
MergeStoreBench.getLongRL    avgt   15  25299.502 ±  59.614  ns/op
MergeStoreBench.getLongRLU   avgt   15  21178.624 ±  65.400  ns/op
MergeStoreBench.getLongRU    avgt   15   4388.503 ±  15.022  ns/op
MergeStoreBench.getLongU     avgt   15   3721.682 ±   3.202  ns/op
MergeStoreBench.putChars4    avgt   15  18617.889 ± 194.877  ns/op
MergeStoreBench.putChars4UB  avgt   15  11140.563 ±  35.977  ns/op
MergeStoreBench.putChars4UC  avgt   15  10913.407 ±  30.633  ns/op
MergeStoreBench.setIntB      avgt   15  11670.307 ±  30.119  ns/op
MergeStoreBench.setIntBU     avgt   15  13614.156 ±  79.641  ns/op
MergeStoreBench.setIntBV     avgt   15   1856.985 ±   3.735  ns/op
MergeStoreBench.setIntL      avgt   15   5094.994 ± 143.111  ns/op
MergeStoreBench.setIntLU     avgt   15   4653.661 ±  13.918  ns/op
MergeStoreBench.setIntLV     avgt   15   7364.007 ±  23.713  ns/op
MergeStoreBench.setIntRL     avgt   15   7745.408 ±  19.505  ns/op
MergeStoreBench.setIntRLU    avgt   15   8262.371 ±  17.381  ns/op
MergeStoreBench.setIntRU     avgt   15   7361.715 ±  15.911  ns/op
MergeStoreBench.setIntU      avgt   15   7360.358 ±  18.326  ns/op
MergeStoreBench.setLongB     avgt   15  29724.536 ± 111.106  ns/op
MergeStoreBench.setLongBU    avgt   15  28497.008 ± 141.615  ns/op
MergeStoreBench.setLongBV    avgt   15   5722.789 ±  32.736  ns/op
MergeStoreBench.setLongL     avgt   15  10547.782 ±  31.164  ns/op
MergeStoreBench.setLongLU    avgt   15   8291.086 ±  39.928  ns/op
MergeStoreBench.setLongLV    avgt   15   4614.304 ±  24.229  ns/op
MergeStoreBench.setLongRB    avgt   15  33607.418 ± 293.440  ns/op
MergeStoreBench.setLongRBU   avgt   15  30414.981 ±  74.164  ns/op
MergeStoreBench.setLongRL    avgt   15  13901.427 ±  79.116  ns/op
MergeStoreBench.setLongRLU   avgt   15   9751.634 ± 337.882  ns/op
MergeStoreBench.setLongRU    avgt   15   6305.701 ±  13.433  ns/op
MergeStoreBench.setLongU     avgt   15   5174.620 ±  27.848  ns/op


## 2.7 AWS ecs c5.xlarge (x64)

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15  13079.509 ±  31.297  ns/op
MergeStoreBench.getIntBU     avgt   15   9462.475 ±  21.237  ns/op
MergeStoreBench.getIntBV     avgt   15    427.081 ±  11.493  ns/op
MergeStoreBench.getIntL      avgt   15  12265.667 ± 155.913  ns/op
MergeStoreBench.getIntLU     avgt   15   9444.551 ±   6.117  ns/op
MergeStoreBench.getIntLV     avgt   15   2424.707 ±   3.046  ns/op
MergeStoreBench.getIntRB     avgt   15  13399.629 ±  21.861  ns/op
MergeStoreBench.getIntRBU    avgt   15  10146.871 ±  29.528  ns/op
MergeStoreBench.getIntRL     avgt   15  13079.355 ±   4.712  ns/op
MergeStoreBench.getIntRLU    avgt   15  10074.582 ±  21.369  ns/op
MergeStoreBench.getIntRU     avgt   15   2965.584 ±   8.777  ns/op
MergeStoreBench.getIntU      avgt   15   2725.438 ±   3.373  ns/op
MergeStoreBench.getLongB     avgt   15  26115.043 ±  45.099  ns/op
MergeStoreBench.getLongBU    avgt   15  17887.028 ±  31.958  ns/op
MergeStoreBench.getLongBV    avgt   15   1003.857 ±   3.478  ns/op
MergeStoreBench.getLongL     avgt   15  26121.420 ±  56.763  ns/op
MergeStoreBench.getLongLU    avgt   15  17838.494 ±  33.942  ns/op
MergeStoreBench.getLongLV    avgt   15   2422.744 ±   2.451  ns/op
MergeStoreBench.getLongRB    avgt   15  26099.347 ±   7.375  ns/op
MergeStoreBench.getLongRBU   avgt   15  17892.774 ±  36.187  ns/op
MergeStoreBench.getLongRL    avgt   15  26113.364 ±  42.866  ns/op
MergeStoreBench.getLongRLU   avgt   15  17828.021 ±   5.329  ns/op
MergeStoreBench.getLongRU    avgt   15   3848.432 ±   0.722  ns/op
MergeStoreBench.getLongU     avgt   15   3784.374 ±   6.472  ns/op
MergeStoreBench.putChars4    avgt   15   9816.198 ±  26.355  ns/op
MergeStoreBench.putChars4UB  avgt   15   4706.135 ±   4.254  ns/op
MergeStoreBench.putChars4UC  avgt   15  10203.688 ±  56.176  ns/op
MergeStoreBench.setIntB      avgt   15  12799.623 ±  28.007  ns/op
MergeStoreBench.setIntBU     avgt   15  15187.730 ±  40.084  ns/op
MergeStoreBench.setIntBV     avgt   15    889.277 ±  11.389  ns/op
MergeStoreBench.setIntL      avgt   15   2970.163 ±   5.265  ns/op
MergeStoreBench.setIntLU     avgt   15   6769.524 ±  18.502  ns/op
MergeStoreBench.setIntLV     avgt   15    945.737 ±   2.444  ns/op
MergeStoreBench.setIntRB     avgt   15  14046.973 ±  32.796  ns/op
MergeStoreBench.setIntRBU    avgt   15  16527.209 ±  82.575  ns/op
MergeStoreBench.setIntRL     avgt   15   7020.496 ± 179.054  ns/op
MergeStoreBench.setIntRLU    avgt   15  10178.358 ±  19.539  ns/op
MergeStoreBench.setIntRU     avgt   15   1343.150 ±   6.356  ns/op
MergeStoreBench.setIntU      avgt   15   1037.694 ±   2.379  ns/op
MergeStoreBench.setLongB     avgt   15  22693.643 ±  42.961  ns/op
MergeStoreBench.setLongBU    avgt   15  35717.196 ± 104.769  ns/op
MergeStoreBench.setLongBV    avgt   15   1753.671 ±  26.216  ns/op
MergeStoreBench.setLongL     avgt   15   4150.631 ±   1.421  ns/op
MergeStoreBench.setLongLU    avgt   15   7141.568 ±  27.922  ns/op
MergeStoreBench.setLongLV    avgt   15   1678.193 ±   5.627  ns/op
MergeStoreBench.setLongRB    avgt   15  24545.267 ±   6.587  ns/op
MergeStoreBench.setLongRBU   avgt   15  36050.753 ±  65.961  ns/op
MergeStoreBench.setLongRL    avgt   15   5557.854 ±   8.769  ns/op
MergeStoreBench.setLongRLU   avgt   15   6155.434 ±  50.697  ns/op
MergeStoreBench.setLongRU    avgt   15   1751.805 ±  26.192  ns/op
MergeStoreBench.setLongU     avgt   15   1701.889 ±   9.799  ns/op


## 2.8 AWS c7g.xlarge (aarch64)
* [AWS Graviton3 Processor](https://aws.amazon.com/ec2/graviton/)

Benchmark                    Mode  Cnt      Score     Error  Units
MergeStoreBench.getIntB      avgt   15   8043.459 ±   4.801  ns/op
MergeStoreBench.getIntBU     avgt   15   7056.463 ±   3.285  ns/op
MergeStoreBench.getIntBV     avgt   15    780.570 ±   0.033  ns/op
MergeStoreBench.getIntL      avgt   15   7666.043 ±  10.795  ns/op
MergeStoreBench.getIntLU     avgt   15   6379.222 ±  13.369  ns/op
MergeStoreBench.getIntLV     avgt   15   3179.702 ±   0.235  ns/op
MergeStoreBench.getIntRB     avgt   15   8892.801 ±   7.461  ns/op
MergeStoreBench.getIntRBU    avgt   15   7822.666 ±   0.944  ns/op
MergeStoreBench.getIntRL     avgt   15   8385.029 ± 255.203  ns/op
MergeStoreBench.getIntRLU    avgt   15   6995.686 ±   1.382  ns/op
MergeStoreBench.getIntRU     avgt   15   2361.462 ±   0.125  ns/op
MergeStoreBench.getIntU      avgt   15   2232.425 ±   0.121  ns/op
MergeStoreBench.getLongB     avgt   15  15212.747 ±  72.866  ns/op
MergeStoreBench.getLongBU    avgt   15  12521.436 ±  10.604  ns/op
MergeStoreBench.getLongBV    avgt   15   1570.044 ±   0.614  ns/op
MergeStoreBench.getLongL     avgt   15  14723.614 ±   2.207  ns/op
MergeStoreBench.getLongLU    avgt   15  12038.660 ±  17.515  ns/op
MergeStoreBench.getLongLV    avgt   15   3180.912 ±   0.213  ns/op
MergeStoreBench.getLongRB    avgt   15  15168.386 ±   3.612  ns/op
MergeStoreBench.getLongRBU   avgt   15  12513.044 ±   6.066  ns/op
MergeStoreBench.getLongRL    avgt   15  14725.218 ±   2.830  ns/op
MergeStoreBench.getLongRLU   avgt   15  12030.288 ±  17.871  ns/op
MergeStoreBench.getLongRU    avgt   15   3198.287 ±   0.195  ns/op
MergeStoreBench.getLongU     avgt   15   3187.308 ±   0.211  ns/op
MergeStoreBench.putChars4    avgt   15  10401.393 ±  12.031  ns/op
MergeStoreBench.putChars4UB  avgt   15   3677.934 ±   2.670  ns/op
MergeStoreBench.putChars4UC  avgt   15   5744.121 ±  82.141  ns/op
MergeStoreBench.setIntB      avgt   15   7043.439 ±   2.165  ns/op
MergeStoreBench.setIntBU     avgt   15   7981.350 ±   0.716  ns/op
MergeStoreBench.setIntBV     avgt   15    784.619 ±   0.029  ns/op
MergeStoreBench.setIntL      avgt   15   3189.311 ±   0.710  ns/op
MergeStoreBench.setIntLU     avgt   15   3272.439 ±   3.194  ns/op
MergeStoreBench.setIntLV     avgt   15   1565.925 ±   0.146  ns/op
MergeStoreBench.setIntRB     avgt   15   8625.077 ±   1.519  ns/op
MergeStoreBench.setIntRBU    avgt   15   8105.421 ±  27.598  ns/op
MergeStoreBench.setIntRL     avgt   15   6300.870 ±   0.364  ns/op
MergeStoreBench.setIntRLU    avgt   15   6336.852 ±   1.972  ns/op
MergeStoreBench.setIntRU     avgt   15   1716.681 ±  28.187  ns/op
MergeStoreBench.setIntU      avgt   15   1567.628 ±   0.316  ns/op
MergeStoreBench.setLongB     avgt   15  14894.383 ±  12.716  ns/op
MergeStoreBench.setLongBU    avgt   15  16058.865 ±  17.127  ns/op
MergeStoreBench.setLongBV    avgt   15   1575.499 ±   0.678  ns/op
MergeStoreBench.setLongL     avgt   15   6856.932 ±  25.268  ns/op
MergeStoreBench.setLongLU    avgt   15   3385.389 ±   3.971  ns/op
MergeStoreBench.setLongLV    avgt   15   1569.862 ±   0.616  ns/op
MergeStoreBench.setLongRB    avgt   15  15452.243 ±   6.443  ns/op
MergeStoreBench.setLongRBU   avgt   15  15453.597 ±  10.201  ns/op
MergeStoreBench.setLongRL    avgt   15   7176.426 ±   4.363  ns/op
MergeStoreBench.setLongRLU   avgt   15   3211.004 ±   1.041  ns/op
MergeStoreBench.setLongRU    avgt   15   1575.034 ±   0.267  ns/op
MergeStoreBench.setLongU     avgt   15   1569.837 ±   0.461  ns/op

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19734#issuecomment-2171146882


More information about the core-libs-dev mailing list