RFR: 8340232: Optimize DataInputStream::readUTF
Shaojin Wen
swen at openjdk.org
Tue Sep 17 03:29:31 UTC 2024
On Sun, 8 Sep 2024 07:52:26 GMT, Shaojin Wen <swen at openjdk.org> wrote:
> Similar to ObjectInputStream, use JLA.countPositives and JLA.inflateBytesToChars to speed up readUTF
In the readUTFAscii scenario, the performance is significantly improved, but in the readUTFSmall scenario, the performance is regressed.
Here are the performance numbers on the MacBook M1 Pro:
## Script
# baseline
git checkout fbe2629303bcee5855673b7e37d8c49f19dc9849
make test TEST="micro:java.io.DataInputStreamTest.readUTF"
# current
git checkout 5c4bd6db977ca8729e078d26cb7ca284ab42203c
make test TEST="micro:java.io.DataInputStreamTest.readUTF"
## Performance Numbers
-# baseline
-Benchmark Mode Cnt Score Error Units
-DataInputStreamTest.readUTFAsciiLarge avgt 20 1.401 ? 0.005 us/op
-DataInputStreamTest.readUTFAsciiMixed avgt 20 1.337 ? 0.092 us/op
-DataInputStreamTest.readUTFAsciiSmall avgt 20 0.872 ? 0.004 us/op
-DataInputStreamTest.readUTFLarge avgt 20 2.178 ? 0.050 us/op
-DataInputStreamTest.readUTFMixed avgt 20 1.700 ? 0.109 us/op
-DataInputStreamTest.readUTFSmall avgt 20 0.879 ? 0.012 us/op
+# current
+Benchmark Mode Cnt Score Error Units
+DataInputStreamTest.readUTFAsciiLarge avgt 20 0.833 ? 0.004 us/op
+DataInputStreamTest.readUTFAsciiMixed avgt 20 0.804 ? 0.001 us/op
+DataInputStreamTest.readUTFAsciiSmall avgt 20 0.828 ? 0.005 us/op
+DataInputStreamTest.readUTFLarge avgt 20 2.053 ? 0.063 us/op
+DataInputStreamTest.readUTFMixed avgt 20 1.675 ? 0.056 us/op
+DataInputStreamTest.readUTFSmall avgt 20 1.834 ? 0.026 us/op
| | baseline | current | delta |
| --- | --- | --- | --- |
| DataInputStreamTest.readUTFAsciiLarge | 1.401 | 0.833 | 68.19% |
| DataInputStreamTest.readUTFAsciiMixed | 1.337 | 0.804 | 66.29% |
| DataInputStreamTest.readUTFAsciiSmall | 0.872 | 0.828 | 5.31% |
| DataInputStreamTest.readUTFLarge | 2.178 | 2.053 | 6.09% |
| DataInputStreamTest.readUTFMixed | 1.700 | 1.675 | 1.49% |
| DataInputStreamTest.readUTFSmall | 0.879 | 1.834 | -52.07% |
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20903#issuecomment-2347702045
More information about the core-libs-dev
mailing list