RFR 8245308 : Replace ThreadLocalCoders decoder/encoder cache in java.net.URI
Rahul Yadav
rahul.r.yadav at oracle.com
Thu Aug 27 18:14:04 UTC 2020
Thank you all for the feedback. I have included feedback and updated
webrev.
Before :
Benchmark Mode Cnt Score Error Units
ThreadLocalURI.uriDecoderBaseline avgt 25 556.315 ± 23.389 ns/op
ThreadLocalURI.uriDecoderTest avgt 25 728.413 ± 19.833 ns/op
ThreadLocalURI.uriEncoderTest avgt 25 337.042 ± 8.304 ns/op
After :
Benchmark Mode Cnt Score Error Units
ThreadLocalURI.uriDecoderBaseline avgt 25 578.108 ± 9.829 ns/op
ThreadLocalURI.uriDecoderTest avgt 25 688.298 ± 10.654 ns/op
ThreadLocalURI.uriEncoderTest avgt 25 336.660 ± 2.997 ns/op
webrev:
https://cr.openjdk.java.net/~ryadav/webrev_8245308/webrev.01/index.html
- rahul
On 27/08/2020 15:58, Daniel Fuchs wrote:
> Hi Rahul,
>
> The code changes look good to me but the uriDecoderTest needs
> some working. The reason is that the decoded path is cached
> in the URI, so only the first call to getPath() will decode it.
> The following calls will just return the cached value.
>
> I also believe you should remove the inner loop - it probably serves
> no purpose, and possibly find a way to pass a fresh URI to each
> invocation of the uriDecoderTest method. I am not 100% sure on
> how to achieve that with JMH though, but hopefully there's some
> way to do that.
>
> best regards,
>
> -- daniel
>
> On 27/08/2020 14:11, Rahul Yadav wrote:
>> Hello,
>>
>> Request to have my fix reviewed for issue:
>>
>> JDK-8245308: Replace ThreadLocalCoders decoder/encoder cache in
>> java.net.URI.
>>
>> This fix updates java.net.URI, replaces the ThreadLocalCoders
>> optimization.
>> The benchmark results indicate no impact, optimization can be
>> replaced.The results of
>> benchmark are provided below and benchmark included in webrev.
>>
>> Before
>>
>> Benchmark (iterations) Mode Cnt Score Error
>> Units
>> ThreadLocalURI.uriDecoderTest 100 avgt 25 0.258 ±
>> 0.014 us/op
>> ThreadLocalURI.uriEncoderTest 100 avgt 25 35.540 ±
>> 1.082 us/op
>>
>> After
>>
>> Benchmark (iterations) Mode Cnt Score Error
>> Units
>> ThreadLocalURI.uriDecoderTest 100 avgt 25 0.247 ±
>> 0.005 us/op
>> ThreadLocalURI.uriEncoderTest 100 avgt 25 37.231 ±
>> 0.669 us/op
>>
>>
>> Issue: https://bugs.openjdk.java.net/browse/JDK-8245308
>> webrev: https://cr.openjdk.java.net/~ryadav/webrev_8245308/index.html
>>
>> - rahul
>
More information about the net-dev
mailing list