RFR: 8334342: Add MergeStore JMH benchmarks [v7]

Shaojin Wen duke at openjdk.org
Wed Jul 24 22:02:34 UTC 2024


On Wed, 24 Jul 2024 16:00:10 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.
>
> Shaojin Wen has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into merge_store_bench
>  - move to vm.compiler
>  - Merge remote-tracking branch 'upstream/master' into merge_store_bench
>  - Merge remote-tracking branch 'upstream/master' into merge_store_bench
>  - bug fix for `putChars4C`
>  - bug fix for `putChars4C` and `putChars4S`
>  - use VarHandler CHAR_L & CHAR_B
>  - copyright
>  - bug fix for putIntBU
>  - add cases for `getChar` & `putChar`
>  - ... and 6 more: https://git.openjdk.org/jdk/compare/e56ab33e...d00654ff

Here are the performance numbers running on the new MacBook M1 Pro,

* Test scenarios with significant performance improvements

Benchmark                    Mode  Cnt  Score-Old    Score-New    Units
MergeStoreBench.putChars4BU  avgt   15  10266.123    3830.198 *   ns/op
MergeStoreBench.putChars4LU  avgt   15  10266.238    3827.784 *   ns/op
MergeStoreBench.setIntLU     avgt   15   5103.562    2573.624 *   ns/op
MergeStoreBench.setLongLU    avgt   15  10304.012    2921.575 *   ns/op
MergeStoreBench.setLongRLU   avgt   15  10263.975    3241.057 *   ns/op


* 

Benchmark                    Mode  Cnt  Score-Old    Score-New    Units
MergeStoreBench.getCharB     avgt   15   5341.787    5340.200     ns/op
MergeStoreBench.getCharBU    avgt   15   5477.363    5482.163     ns/op
MergeStoreBench.getCharBV    avgt   15   5163.099    5074.165     ns/op
MergeStoreBench.getCharC     avgt   15   5068.708    5051.763     ns/op
MergeStoreBench.getCharL     avgt   15   5379.821    5374.464     ns/op
MergeStoreBench.getCharLU    avgt   15   5477.268    5487.532     ns/op
MergeStoreBench.getCharLV    avgt   15   5079.045    5071.263     ns/op
MergeStoreBench.getIntB      avgt   15   6276.548    6277.984     ns/op
MergeStoreBench.getIntBU     avgt   15   5229.813    5232.984     ns/op
MergeStoreBench.getIntBV     avgt   15   1207.868    1206.264     ns/op
MergeStoreBench.getIntL      avgt   15   6182.150    6172.779     ns/op
MergeStoreBench.getIntLU     avgt   15   5164.260    5157.317     ns/op
MergeStoreBench.getIntLV     avgt   15   2555.443    2558.110     ns/op
MergeStoreBench.getIntRB     avgt   15   6879.188    6889.916     ns/op
MergeStoreBench.getIntRBU    avgt   15   5771.857    5769.950     ns/op
MergeStoreBench.getIntRL     avgt   15   6625.754    6625.605     ns/op
MergeStoreBench.getIntRLU    avgt   15   5746.554    5746.742     ns/op
MergeStoreBench.getIntRU     avgt   15   2547.449    2544.586     ns/op
MergeStoreBench.getIntU      avgt   15   2543.552    2541.119     ns/op
MergeStoreBench.getLongB     avgt   15  12099.002   12098.129     ns/op
MergeStoreBench.getLongBU    avgt   15   9771.893    9760.621     ns/op
MergeStoreBench.getLongBV    avgt   15   2593.835    2593.635     ns/op
MergeStoreBench.getLongL     avgt   15  12045.235   12031.065     ns/op
MergeStoreBench.getLongLU    avgt   15   9659.585    9653.938     ns/op
MergeStoreBench.getLongLV    avgt   15   2561.089    2557.521     ns/op
MergeStoreBench.getLongRB    avgt   15  12095.060   12092.061     ns/op
MergeStoreBench.getLongRBU   avgt   15   9767.943    9763.489     ns/op
MergeStoreBench.getLongRL    avgt   15  12037.935   12027.686     ns/op
MergeStoreBench.getLongRLU   avgt   15   9655.918    9649.433     ns/op
MergeStoreBench.getLongRU    avgt   15   2551.109    2546.239     ns/op
MergeStoreBench.getLongU     avgt   15   2543.732    2539.762     ns/op
MergeStoreBench.putChars4B   avgt   15   8499.750    8487.381     ns/op
MergeStoreBench.putChars4BU  avgt   15  10266.123    3830.198 *   ns/op
MergeStoreBench.putChars4BV  avgt   15   5153.418    5154.819     ns/op
MergeStoreBench.putChars4C   avgt   15   5141.336    5162.766     ns/op
MergeStoreBench.putChars4L   avgt   15   8382.747    8381.231     ns/op
MergeStoreBench.putChars4LU  avgt   15  10266.238    3827.784 *   ns/op
MergeStoreBench.putChars4LV  avgt   15   5150.613    5151.508     ns/op
MergeStoreBench.putChars4S   avgt   15   5144.843    5152.123     ns/op
MergeStoreBench.setCharBS    avgt   15   5318.051    5317.319     ns/op
MergeStoreBench.setCharBV    avgt   15   5187.295    5175.400     ns/op
MergeStoreBench.setCharC     avgt   15   5093.774    5085.752     ns/op
MergeStoreBench.setCharLS    avgt   15   5301.267    5294.766     ns/op
MergeStoreBench.setCharLV    avgt   15   5116.066    5108.269     ns/op
MergeStoreBench.setIntB      avgt   15   5104.537    5095.236     ns/op
MergeStoreBench.setIntBU     avgt   15   5104.838    5097.007     ns/op
MergeStoreBench.setIntBV     avgt   15   1228.375    1224.506     ns/op
MergeStoreBench.setIntL      avgt   15   2772.278    2764.388     ns/op
MergeStoreBench.setIntLU     avgt   15   5103.562    2573.624 *   ns/op
MergeStoreBench.setIntLV     avgt   15   5112.770    5105.804     ns/op
MergeStoreBench.setIntRB     avgt   15   5356.946    5348.785     ns/op
MergeStoreBench.setIntRBU    avgt   15   5420.478    5422.049     ns/op
MergeStoreBench.setIntRL     avgt   15   5297.975    5293.414     ns/op
MergeStoreBench.setIntRLU    avgt   15   5418.844    5126.889     ns/op
MergeStoreBench.setIntRU     avgt   15   5108.486    5097.927     ns/op
MergeStoreBench.setIntU      avgt   15   5091.868    5087.192     ns/op
MergeStoreBench.setLongB     avgt   15  10273.648   10249.037     ns/op
MergeStoreBench.setLongBU    avgt   15  10271.248   10238.910     ns/op
MergeStoreBench.setLongBV    avgt   15   2667.768    2663.647     ns/op
MergeStoreBench.setLongL     avgt   15   6316.791    6304.458     ns/op
MergeStoreBench.setLongLU    avgt   15  10304.012    2921.575 *   ns/op
MergeStoreBench.setLongLV    avgt   15   2667.648    2663.323     ns/op
MergeStoreBench.setLongRB    avgt   15  10269.238   10255.875     ns/op
MergeStoreBench.setLongRBU   avgt   15  10272.547   10227.856     ns/op
MergeStoreBench.setLongRL    avgt   15   6651.182    6641.173     ns/op
MergeStoreBench.setLongRLU   avgt   15  10263.975    3241.057 *   ns/op
MergeStoreBench.setLongRU    avgt   15   2621.004    2608.399     ns/op
MergeStoreBench.setLongU     avgt   15   2606.578    2594.970     ns/op

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

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


More information about the core-libs-dev mailing list