On Wed, 12 Nov 2025 09:08:10 GMT, Per Minborg <[email protected]> wrote:
> This PR proposes to consolidate and standardize the benchmarks related to the > bulk operations for memory segments. > > All the benchmarks will now run with > (heap|native)x(aligned|unaligned)x(intint|intlong|longlong) combinations. > > It should be noted that with this change, the running time for the benchmarks > would increase significantly. Here are some examples of benchmark output: Benchmark (alignment) (segmentType) (size) Mode Cnt Score Error Units SegmentBulkHash.Array.array N/A N/A 2 avgt 30 2.681 ± 0.137 ns/op SegmentBulkHash.Segment.hash ALIGNED HEAP 2 avgt 30 3.531 ± 0.343 ns/op SegmentBulkHash.Segment.hash ALIGNED NATIVE 2 avgt 30 5.070 ± 0.963 ns/op SegmentBulkHash.Segment.hash UNALIGNED HEAP 2 avgt 30 3.498 ± 0.238 ns/op SegmentBulkHash.Segment.hash UNALIGNED NATIVE 2 avgt 30 4.158 ± 0.154 ns/op SegmentBulkHash.Segment.hashLoopIntInt ALIGNED HEAP 2 avgt 30 4.470 ± 0.215 ns/op SegmentBulkHash.Segment.hashLoopIntInt ALIGNED NATIVE 2 avgt 30 3.906 ± 0.233 ns/op SegmentBulkHash.Segment.hashLoopIntInt UNALIGNED HEAP 2 avgt 30 4.531 ± 0.246 ns/op SegmentBulkHash.Segment.hashLoopIntInt UNALIGNED NATIVE 2 avgt 30 3.619 ± 0.095 ns/op SegmentBulkHash.Segment.hashLoopIntLong ALIGNED HEAP 2 avgt 30 4.226 ± 0.266 ns/op SegmentBulkHash.Segment.hashLoopIntLong ALIGNED NATIVE 2 avgt 30 3.223 ± 0.351 ns/op SegmentBulkHash.Segment.hashLoopIntLong UNALIGNED HEAP 2 avgt 30 4.125 ± 0.293 ns/op SegmentBulkHash.Segment.hashLoopIntLong UNALIGNED NATIVE 2 avgt 30 3.329 ± 0.221 ns/op SegmentBulkHash.Segment.hashLoopLongLong ALIGNED HEAP 2 avgt 30 3.603 ± 0.285 ns/op SegmentBulkHash.Segment.hashLoopLongLong ALIGNED NATIVE 2 avgt 30 3.048 ± 0.172 ns/op SegmentBulkHash.Segment.hashLoopLongLong UNALIGNED HEAP 2 avgt 30 3.666 ± 0.180 ns/op SegmentBulkHash.Segment.hashLoopLongLong UNALIGNED NATIVE 2 avgt 30 3.237 ± 0.257 ns/op Benchmark (alignment) (segmentType) (size) Mode Cnt Score Error Units SegmentBulkCopy.Array.arrayCopy N/A N/A 2 avgt 30 5.654 ± 0.363 ns/op SegmentBulkCopy.Array.arrayCopy N/A N/A 3 avgt 30 4.704 ± 0.337 ns/op SegmentBulkCopy.Array.bufferCopy N/A N/A 2 avgt 30 6.964 ± 0.711 ns/op SegmentBulkCopy.Array.bufferCopy N/A N/A 3 avgt 30 7.033 ± 0.486 ns/op SegmentBulkCopy.Segment.copy ALIGNED HEAP 2 avgt 30 6.333 ± 0.513 ns/op SegmentBulkCopy.Segment.copy ALIGNED HEAP 3 avgt 30 6.181 ± 0.632 ns/op SegmentBulkCopy.Segment.copy ALIGNED NATIVE 2 avgt 30 4.552 ± 0.312 ns/op SegmentBulkCopy.Segment.copy ALIGNED NATIVE 3 avgt 30 4.680 ± 0.362 ns/op SegmentBulkCopy.Segment.copy UNALIGNED HEAP 2 avgt 30 6.574 ± 0.568 ns/op SegmentBulkCopy.Segment.copy UNALIGNED HEAP 3 avgt 30 6.516 ± 0.431 ns/op SegmentBulkCopy.Segment.copy UNALIGNED NATIVE 2 avgt 30 4.503 ± 0.245 ns/op SegmentBulkCopy.Segment.copy UNALIGNED NATIVE 3 avgt 30 4.584 ± 0.254 ns/op SegmentBulkCopy.Segment.copyLoopIntInt ALIGNED HEAP 2 avgt 30 5.492 ± 0.242 ns/op SegmentBulkCopy.Segment.copyLoopIntInt ALIGNED HEAP 3 avgt 30 7.173 ± 0.414 ns/op SegmentBulkCopy.Segment.copyLoopIntInt ALIGNED NATIVE 2 avgt 30 4.743 ± 0.173 ns/op SegmentBulkCopy.Segment.copyLoopIntInt ALIGNED NATIVE 3 avgt 30 5.651 ± 0.144 ns/op SegmentBulkCopy.Segment.copyLoopIntInt UNALIGNED HEAP 2 avgt 30 5.658 ± 0.281 ns/op SegmentBulkCopy.Segment.copyLoopIntInt UNALIGNED HEAP 3 avgt 30 6.853 ± 0.388 ns/op SegmentBulkCopy.Segment.copyLoopIntInt UNALIGNED NATIVE 2 avgt 30 4.807 ± 0.220 ns/op SegmentBulkCopy.Segment.copyLoopIntInt UNALIGNED NATIVE 3 avgt 30 5.765 ± 0.261 ns/op SegmentBulkCopy.Segment.copyUnsafe ALIGNED HEAP 2 avgt 30 9.287 ± 0.410 ns/op SegmentBulkCopy.Segment.copyUnsafe ALIGNED HEAP 3 avgt 30 9.258 ± 0.440 ns/op SegmentBulkCopy.Segment.copyUnsafe ALIGNED NATIVE 2 avgt 30 8.188 ± 0.384 ns/op SegmentBulkCopy.Segment.copyUnsafe ALIGNED NATIVE 3 avgt 30 7.348 ± 0.321 ns/op SegmentBulkCopy.Segment.copyUnsafe UNALIGNED HEAP 2 avgt 30 8.741 ± 0.363 ns/op SegmentBulkCopy.Segment.copyUnsafe UNALIGNED HEAP 3 avgt 30 8.788 ± 0.287 ns/op SegmentBulkCopy.Segment.copyUnsafe UNALIGNED NATIVE 2 avgt 30 7.534 ± 0.241 ns/op SegmentBulkCopy.Segment.copyUnsafe UNALIGNED NATIVE 3 avgt 30 7.238 ± 0.271 ns/op SegmentBulkCopy.Segment.copyLoopIntLong ALIGNED HEAP 2 avgt 30 5.412 ± 0.182 ns/op SegmentBulkCopy.Segment.copyLoopIntLong ALIGNED HEAP 3 avgt 30 6.545 ± 0.352 ns/op SegmentBulkCopy.Segment.copyLoopIntLong ALIGNED NATIVE 2 avgt 30 5.402 ± 0.882 ns/op SegmentBulkCopy.Segment.copyLoopIntLong ALIGNED NATIVE 3 avgt 30 5.396 ± 0.259 ns/op SegmentBulkCopy.Segment.copyLoopIntLong UNALIGNED HEAP 2 avgt 30 5.495 ± 0.268 ns/op SegmentBulkCopy.Segment.copyLoopIntLong UNALIGNED HEAP 3 avgt 30 6.354 ± 0.350 ns/op SegmentBulkCopy.Segment.copyLoopIntLong UNALIGNED NATIVE 2 avgt 30 4.439 ± 0.206 ns/op SegmentBulkCopy.Segment.copyLoopIntLong UNALIGNED NATIVE 3 avgt 30 5.586 ± 0.289 ns/op SegmentBulkCopy.Segment.copyLoopLongLong ALIGNED HEAP 2 avgt 30 5.109 ± 0.213 ns/op SegmentBulkCopy.Segment.copyLoopLongLong ALIGNED HEAP 3 avgt 30 7.341 ± 0.364 ns/op SegmentBulkCopy.Segment.copyLoopLongLong ALIGNED NATIVE 2 avgt 30 4.486 ± 0.235 ns/op SegmentBulkCopy.Segment.copyLoopLongLong ALIGNED NATIVE 3 avgt 30 6.911 ± 0.289 ns/op SegmentBulkCopy.Segment.copyLoopLongLong UNALIGNED HEAP 2 avgt 30 5.302 ± 0.138 ns/op SegmentBulkCopy.Segment.copyLoopLongLong UNALIGNED HEAP 3 avgt 30 7.409 ± 0.431 ns/op SegmentBulkCopy.Segment.copyLoopLongLong UNALIGNED NATIVE 2 avgt 30 4.524 ± 0.184 ns/op SegmentBulkCopy.Segment.copyLoopLongLong UNALIGNED NATIVE 3 avgt 30 6.463 ± 0.262 ns/op Benchmark (alignment) (segmentType) (size) Mode Cnt Score Error Units SegmentBulkFill.Array.arraysFill N/A N/A 2 avgt 30 2.138 ± 0.086 ns/op SegmentBulkFill.Array.arraysFill N/A N/A 3 avgt 30 2.124 ± 0.056 ns/op SegmentBulkFill.Array.arraysFillLoop N/A N/A 2 avgt 30 1.715 ± 0.092 ns/op SegmentBulkFill.Array.arraysFillLoop N/A N/A 3 avgt 30 2.124 ± 0.052 ns/op SegmentBulkFill.Array.bufferFillLoop N/A N/A 2 avgt 30 3.293 ± 0.077 ns/op SegmentBulkFill.Array.bufferFillLoop N/A N/A 3 avgt 30 3.321 ± 0.090 ns/op SegmentBulkFill.Segment.fill ALIGNED HEAP 2 avgt 30 2.368 ± 0.073 ns/op SegmentBulkFill.Segment.fill ALIGNED HEAP 3 avgt 30 2.429 ± 0.060 ns/op SegmentBulkFill.Segment.fill ALIGNED NATIVE 2 avgt 30 1.974 ± 0.070 ns/op SegmentBulkFill.Segment.fill ALIGNED NATIVE 3 avgt 30 1.990 ± 0.047 ns/op SegmentBulkFill.Segment.fill UNALIGNED HEAP 2 avgt 30 2.641 ± 0.270 ns/op SegmentBulkFill.Segment.fill UNALIGNED HEAP 3 avgt 30 2.666 ± 0.077 ns/op SegmentBulkFill.Segment.fill UNALIGNED NATIVE 2 avgt 30 2.157 ± 0.065 ns/op SegmentBulkFill.Segment.fill UNALIGNED NATIVE 3 avgt 30 2.084 ± 0.026 ns/op SegmentBulkFill.Segment.fillLoopIntInt ALIGNED HEAP 2 avgt 30 3.409 ± 0.069 ns/op SegmentBulkFill.Segment.fillLoopIntInt ALIGNED HEAP 3 avgt 30 4.141 ± 0.114 ns/op SegmentBulkFill.Segment.fillLoopIntInt ALIGNED NATIVE 2 avgt 30 2.990 ± 0.088 ns/op SegmentBulkFill.Segment.fillLoopIntInt ALIGNED NATIVE 3 avgt 30 3.382 ± 0.059 ns/op SegmentBulkFill.Segment.fillLoopIntInt UNALIGNED HEAP 2 avgt 30 3.288 ± 0.061 ns/op SegmentBulkFill.Segment.fillLoopIntInt UNALIGNED HEAP 3 avgt 30 4.322 ± 0.228 ns/op SegmentBulkFill.Segment.fillLoopIntInt UNALIGNED NATIVE 2 avgt 30 3.451 ± 0.085 ns/op SegmentBulkFill.Segment.fillLoopIntInt UNALIGNED NATIVE 3 avgt 30 3.998 ± 0.133 ns/op SegmentBulkFill.Segment.fillLoopIntLong ALIGNED HEAP 2 avgt 30 3.512 ± 0.092 ns/op SegmentBulkFill.Segment.fillLoopIntLong ALIGNED HEAP 3 avgt 30 4.239 ± 0.136 ns/op SegmentBulkFill.Segment.fillLoopIntLong ALIGNED NATIVE 2 avgt 30 3.253 ± 0.133 ns/op SegmentBulkFill.Segment.fillLoopIntLong ALIGNED NATIVE 3 avgt 30 3.578 ± 0.158 ns/op SegmentBulkFill.Segment.fillLoopIntLong UNALIGNED HEAP 2 avgt 30 3.082 ± 0.089 ns/op SegmentBulkFill.Segment.fillLoopIntLong UNALIGNED HEAP 3 avgt 30 3.669 ± 0.086 ns/op SegmentBulkFill.Segment.fillLoopIntLong UNALIGNED NATIVE 2 avgt 30 2.875 ± 0.091 ns/op SegmentBulkFill.Segment.fillLoopIntLong UNALIGNED NATIVE 3 avgt 30 3.443 ± 0.075 ns/op SegmentBulkFill.Segment.fillLoopLongLong ALIGNED HEAP 2 avgt 30 2.717 ± 0.062 ns/op SegmentBulkFill.Segment.fillLoopLongLong ALIGNED HEAP 3 avgt 30 4.013 ± 0.105 ns/op SegmentBulkFill.Segment.fillLoopLongLong ALIGNED NATIVE 2 avgt 30 2.353 ± 0.049 ns/op SegmentBulkFill.Segment.fillLoopLongLong ALIGNED NATIVE 3 avgt 30 3.718 ± 0.098 ns/op SegmentBulkFill.Segment.fillLoopLongLong UNALIGNED HEAP 2 avgt 30 2.769 ± 0.098 ns/op SegmentBulkFill.Segment.fillLoopLongLong UNALIGNED HEAP 3 avgt 30 4.097 ± 0.131 ns/op SegmentBulkFill.Segment.fillLoopLongLong UNALIGNED NATIVE 2 avgt 30 2.388 ± 0.068 ns/op SegmentBulkFill.Segment.fillLoopLongLong UNALIGNED NATIVE 3 avgt 30 3.688 ± 0.069 ns/op SegmentBulkFill.Segment.fillUnsafe ALIGNED HEAP 2 avgt 30 4.740 ± 0.118 ns/op SegmentBulkFill.Segment.fillUnsafe ALIGNED HEAP 3 avgt 30 6.462 ± 0.292 ns/op SegmentBulkFill.Segment.fillUnsafe ALIGNED NATIVE 2 avgt 30 4.376 ± 0.139 ns/op SegmentBulkFill.Segment.fillUnsafe ALIGNED NATIVE 3 avgt 30 5.864 ± 0.342 ns/op SegmentBulkFill.Segment.fillUnsafe UNALIGNED HEAP 2 avgt 30 6.642 ± 0.584 ns/op SegmentBulkFill.Segment.fillUnsafe UNALIGNED HEAP 3 avgt 30 7.080 ± 0.337 ns/op SegmentBulkFill.Segment.fillUnsafe UNALIGNED NATIVE 2 avgt 30 6.519 ± 0.330 ns/op SegmentBulkFill.Segment.fillUnsafe UNALIGNED NATIVE 3 avgt 30 6.392 ± 0.229 ns/op ------------- PR Comment: https://git.openjdk.org/jdk/pull/28260#issuecomment-3520881115
