RFR: 8224202: Speed up Properties.load
Claes Redestad
claes.redestad at oracle.com
Tue May 21 10:22:32 UTC 2019
Hi,
a few smaller optimizations for Properties.load:
- when parsing comment lines, we unnecessarily breaks the fast path loop
on backslashes, even though a backslash embedded in a comment line will
never have any effect on subsequent logical lines
- inside that same loop, we always do two comparisons in the common
case: testing c <= '\r' && c >= '\n' would mean only one comparison in
the common case, since c is very likely to be > '\r' (also when reading
from a byte stream)
- we currently store everything into temporary char[]'s which we then
instantiate Strings with. Since Compact String this means we often
use more temporary storage than necessary, and do unnecessary work
packing from char[] to byte[] representation internally; by using
StringBuilder encoding transitions is handled more gracefully and is a
speed-up in general (both interpreted and compiled) while simplifying
the code somewhat.
Result is ~5-20% faster depending on how comment-heavy the properties
file we're loading is.
Bug: https://bugs.openjdk.java.net/browse/JDK-8224202
Webrev: http://cr.openjdk.java.net/~redestad/8224202/open.00/
Testing: tier1-3
Patch is applied on top of JDK-8224240, patch for which is out for
review here:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2019-May/060301.html
Thanks!
/Claes
More information about the core-libs-dev
mailing list