On Fri, 6 Sep 2024 09:58:58 GMT, Shaojin Wen <s...@openjdk.org> wrote:
> PR #20772 introduced an optimization for writeUTF, which can also be used in > DataOutputStream::writeUTF. Below are the performance numbers running on a MacBook M1 Pro. Both DataOutputStreamBench::writeUTF and ObjectOutputStream::writeUTF have been significantly improved in various character sets. ## 1.1 Script git remote add wenshao g...@github.com:wenshao/jdk.git git fetch wenshao # baseline git chekcout 42f47a8979f20457114e7c63d28d66db044b23dd make test TEST="micro:java.io.DataOutputStreamBench" # current git checkout 30786c277bc006db6a55be267673878d7ea8db9b make test TEST="micro:java.io.DataOutputStreamBench" ## 1.2 Performance Numbers -# baseline -Benchmark (charType) Mode Cnt Score Error Units -DataOutputStreamBench.dataOutwriteUTF ascii avgt 12 13.202 ? 0.238 us/op -DataOutputStreamBench.dataOutwriteUTF utf8_2_bytes avgt 12 16.771 ? 0.145 us/op -DataOutputStreamBench.dataOutwriteUTF utf8_3_bytes avgt 12 48.448 ? 0.112 us/op -DataOutputStreamBench.dataOutwriteUTF emoji avgt 12 53.540 ? 30.963 us/op -DataOutputStreamBench.objectWriteUTF ascii avgt 12 8.800 ? 0.017 us/op -DataOutputStreamBench.objectWriteUTF utf8_2_bytes avgt 12 35.113 ? 0.058 us/op -DataOutputStreamBench.objectWriteUTF utf8_3_bytes avgt 12 36.352 ? 0.152 us/op -DataOutputStreamBench.objectWriteUTF emoji avgt 12 56.454 ? 0.069 us/op +# current +Benchmark (charType) Mode Cnt Score Error Units +DataOutputStreamBench.dataOutwriteUTF ascii avgt 12 5.292 ? 0.040 us/op +DataOutputStreamBench.dataOutwriteUTF utf8_2_bytes avgt 12 11.678 ? 0.105 us/op +DataOutputStreamBench.dataOutwriteUTF utf8_3_bytes avgt 12 27.907 ? 0.048 us/op +DataOutputStreamBench.dataOutwriteUTF emoji avgt 12 49.144 ? 0.176 us/op +DataOutputStreamBench.objectWriteUTF ascii avgt 12 4.693 ? 0.032 us/op +DataOutputStreamBench.objectWriteUTF utf8_2_bytes avgt 12 16.993 ? 0.028 us/op +DataOutputStreamBench.objectWriteUTF utf8_3_bytes avgt 12 23.619 ? 0.115 us/op +DataOutputStreamBench.objectWriteUTF emoji avgt 12 41.335 ? 0.372 us/op | | charType | baseline | current | delta | | --- | --- | --- | --- | --- | | DataOutputStreamBench.dataOutwriteUTF | ascii | 13.202 | 5.292 | 149.47% | | DataOutputStreamBench.dataOutwriteUTF | utf8_2_bytes | 16.771 | 11.678 | 43.61% | | DataOutputStreamBench.dataOutwriteUTF | utf8_3_bytes | 48.448 | 27.907 | 73.61% | | DataOutputStreamBench.dataOutwriteUTF | emoji | 53.540 | 49.144 | 8.95% | | DataOutputStreamBench.objectWriteUTF | ascii | 8.800 | 4.693 | 87.51% | | DataOutputStreamBench.objectWriteUTF | utf8_2_bytes | 35.113 | 16.993 | 106.63% | | DataOutputStreamBench.objectWriteUTF | utf8_3_bytes | 36.352 | 23.619 | 53.91% | | DataOutputStreamBench.objectWriteUTF | emoji | 56.454 | 41.335 | 36.58% | ------------- PR Comment: https://git.openjdk.org/jdk/pull/20886#issuecomment-2335108105