On Fri, 18 Oct 2024 21:56:53 GMT, Shaojin Wen <s...@openjdk.org> wrote:

>> After PR https://github.com/openjdk/jdk/pull/16245, C2 optimizes stores into 
>> primitive arrays by combining values ​​into larger stores.
>> 
>> This PR rewrites the code of appendNull and append(boolean) methods so that 
>> these two methods can be optimized by C2.
>
> 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 26 additional 
> commits since the last revision:
> 
>  - Merge remote-tracking branch 'origin/optim_str_builder_append_202406' into 
> optim_str_builder_append_202406
>  - fix build error
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - Merge remote-tracking branch 'origin/optim_str_builder_append_202406' into 
> optim_str_builder_append_202406
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - revert test
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - Merge remote-tracking branch 'upstream/master' into 
> optim_str_builder_append_202406
>  - ... and 16 more: https://git.openjdk.org/jdk/compare/9d5a1c38...457735c9

I ran performance tests on MaxBook M1 (aarch64) and aliyun c8a (AMD CPU x64). 
There was no significant performance difference between pr #19970 and master, 
but pr #19626 combined with #19970 significantly improved performance.

## Script

git remote add wenshao g...@github.com:wenshao/jdk.git
git fetch wenshao

# master
git checkout 85582d7a88bd5f79f5991ce22bc3bc75e514aec9
make test TEST="micro:java.lang.StringBuilders.appendWithNull8Latin1"

# pr 19970
git checkout 3b89956957085e134a05c05876f40b85d949227e
make test TEST="micro:java.lang.StringBuilders.appendWithNull8Latin1"

# pr 19626 + 19970
git checkout 58dae7888eceb1c61243f658b67c208e6c30f7f2
make test TEST="micro:java.lang.StringBuilders.appendWithNull8Latin1"



## MacBook M1 Max Performance Numbers

# master
Benchmark                             Mode  Cnt  Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  6.950 ? 0.027  ns/op

# pr 19970
Benchmark                             Mode  Cnt  Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  6.945 ? 0.008  ns/op

# pr 19626 + 19970
Benchmark                             Mode  Cnt  Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  6.441 ? 0.059  ns/op



## AMD x64 Performance Numbers

# master
Benchmark                             Mode  Cnt   Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  17.522 ± 8.113  ns/op

# pr 19970
Benchmark                             Mode  Cnt   Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  17.487 ± 8.127  ns/op

# pr 19626 + 19970
Benchmark                             Mode  Cnt  Score   Error  Units
StringBuilders.appendWithNull8Latin1  avgt   15  5.983 ± 0.113  ns/op

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

PR Comment: https://git.openjdk.org/jdk/pull/19626#issuecomment-2424709734

Reply via email to