RFR: 8289908: Skip bounds check for cases when String is constructed from entirely used byte[]
Сергей Цыпанов
duke at openjdk.org
Thu Jul 7 10:32:17 UTC 2022
We can skip bounds check and null check for Charset in case we use the array entirely and the Charset is either default one or proven to be non-null.
Benchmark results:
before
Benchmark Mode Cnt Score Error Units
StringConstructor.newStringFromArray avgt 50 4,815 ± 0,154 ns/op
StringConstructor.newStringFromArrayWithCharset avgt 50 4,462 ± 0,068 ns/op
StringConstructor.newStringFromArrayWithCharsetName avgt 50 8,653 ± 0,040 ns/op
StringConstructor.newStringFromRangedArray avgt 50 5,090 ± 0,066 ns/op
StringConstructor.newStringFromRangedArrayWithCharset avgt 50 4,550 ± 0,041 ns/op
StringConstructor.newStringFromRangedArrayWithCharsetName avgt 50 8,080 ± 0,055 ns/op
after
Benchmark Mode Cnt Score Error Units
StringConstructor.newStringFromArray avgt 50 4,595 ± 0,053 ns/op
StringConstructor.newStringFromArrayWithCharset avgt 50 4,038 ± 0,062 ns/op
StringConstructor.newStringFromArrayWithCharsetName avgt 50 8,035 ± 0,031 ns/op
StringConstructor.newStringFromRangedArray avgt 50 4,084 ± 0,007 ns/op
StringConstructor.newStringFromRangedArrayWithCharset avgt 50 4,014 ± 0,008 ns/op
StringConstructor.newStringFromRangedArrayWithCharsetName avgt 50 7,466 ± 0,071 ns/op
-------------
Commit messages:
- 8289908: Skip bounds check for cases when String is constructed from entirely used byte[]
Changes: https://git.openjdk.org/jdk/pull/9407/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9407&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8289908
Stats: 90 lines in 5 files changed: 77 ins; 1 del; 12 mod
Patch: https://git.openjdk.org/jdk/pull/9407.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/9407/head:pull/9407
PR: https://git.openjdk.org/jdk/pull/9407
More information about the security-dev
mailing list