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