On Tue, 5 Aug 2025 14:04:26 GMT, Per Minborg <pminb...@openjdk.org> wrote:
>> This PR builds on a concept John Rose told me about some time ago. Instead >> of combining memory operations of various sizes, a single large and skewed >> memory operation can be made to clean up the tail of remaining bytes. >> >> This has the effect of simplifying and shortening the code. The number of >> branches to evaluate is reduced. >> >> It should be noted that the performance of the fill operation affects the >> allocation of new segments (as they are zeroed out before being returned to >> the client code). >> >> This PR passes tier1, tier2, and tier3 on multiple platforms. > > Per Minborg has updated the pull request incrementally with one additional > commit since the last revision: > > Improve performance The new performance improvements gave some 8% better performance for smaller segments. Before improvements Benchmark (ELEM_SIZE) Mode Cnt Score Error Units SegmentBulkFill.nativeSegmentFillJava 2 avgt 30 1.322 ± 0.020 ns/op SegmentBulkFill.nativeSegmentFillJava 3 avgt 30 1.313 ± 0.009 ns/op SegmentBulkFill.nativeSegmentFillJava 4 avgt 30 1.323 ± 0.023 ns/op SegmentBulkFill.nativeSegmentFillJava 5 avgt 30 1.309 ± 0.006 ns/op SegmentBulkFill.nativeSegmentFillJava 6 avgt 30 1.310 ± 0.017 ns/op SegmentBulkFill.nativeSegmentFillJava 7 avgt 30 1.308 ± 0.004 ns/op SegmentBulkFill.nativeSegmentFillJava 8 avgt 30 1.312 ± 0.008 ns/op SegmentBulkFill.nativeSegmentFillJava 12 avgt 30 1.316 ± 0.025 ns/op After improvements Benchmark (ELEM_SIZE) Mode Cnt Score Error Units SegmentBulkFill.nativeSegmentFillJava 2 avgt 30 1.230 ± 0.034 ns/op SegmentBulkFill.nativeSegmentFillJava 3 avgt 30 1.228 ± 0.037 ns/op SegmentBulkFill.nativeSegmentFillJava 4 avgt 30 1.243 ± 0.034 ns/op SegmentBulkFill.nativeSegmentFillJava 5 avgt 30 1.230 ± 0.026 ns/op SegmentBulkFill.nativeSegmentFillJava 6 avgt 30 1.224 ± 0.025 ns/op SegmentBulkFill.nativeSegmentFillJava 7 avgt 30 1.232 ± 0.039 ns/op SegmentBulkFill.nativeSegmentFillJava 8 avgt 30 1.208 ± 0.009 ns/op SegmentBulkFill.nativeSegmentFillJava 12 avgt 30 1.242 ± 0.030 ns/op ------------- PR Comment: https://git.openjdk.org/jdk/pull/25383#issuecomment-3155415358