8011135: (bf) CharBuffer.put(String) is slow because of String.charAt() call for each char
Brian Burkhalter
brian.burkhalter at oracle.com
Fri Feb 22 15:34:53 UTC 2019
> On Feb 22, 2019, at 7:18 AM, Brian Burkhalter <brian.burkhalter at oracle.com> wrote:
>
>>> http://cr.openjdk.java.net/~bpb/8011135/webrev/ <http://cr.openjdk.java.net/~bpb/8011135/webrev/>This version looks good.
>>
>> Claes might have some comments on the microbenchmark, my only comment that future maintainers might wonder about the +42 and also why the position is reset to 21 (I assume it would be buf.clear(); buf.put(str);
>
> No good reason really. The 21 and 42 can be removed if we like.
I updated the benchmark as below and re-ran it to verify. I’ll push this version unless I see an objection.
Thanks,
Brian
--- a/test/micro/org/openjdk/bench/java/nio/CharBuffers.java
+++ b/test/micro/org/openjdk/bench/java/nio/CharBuffers.java
@@ -54,13 +54,12 @@
char[] c = new char[numChars];
Arrays.fill(c, 'X');
str = String.valueOf(c);
- buf = CharBuffer.allocate(numChars + 42);
+ buf = CharBuffer.allocate(numChars);
}
@Benchmark
public CharBuffer putString() {
- buf.rewind();
- buf.position(21);
+ buf.clear();
return buf.put(str);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/nio-dev/attachments/20190222/75756970/attachment.html>
More information about the nio-dev
mailing list