On 03/01/2017 04:34 PM, Claes Redestad wrote:
> the properties line reader has some relevance to startup, e.g.,
> when reading the java.security file, and as more documentation
> content has been added to this file it has been made apparent
> that the handling of comment lines is inefficient due to treating
> every character after a comment line marker ('#' or '!') as any
> other character (writes it to an internal buffer etc) when a
> fast-path consuming the rest of the line would do.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8176041
> Webrev: http://cr.openjdk.java.net/~redestad/8176041/jdk.01

The idea looks fine.

I think you can go further and unswitch the loop, saving branch in a hot loop,
and using byte comparisons (may require some work to do efficient byte-char
comparisons):

    if (inStream != null) {
       while (inOff < inLimit) {
          byte b = inByteBuf[inOff++];
          if (b == '\n' || b == '\r' || b == '\\') {
             break;
          }
       }
    } else {
       while (inOff < inLimit) {
          c = inCharBuf[inOff++];
          if (c == '\n' || c == '\r' || c == '\\') {
             break;
          }
       }
    }

Thanks,
-Aleksey

Reply via email to