Request for review: 6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86

Ulf Zibis Ulf.Zibis at CoSoCo.de
Tue Jan 22 23:57:38 UTC 2013


Am 22.01.2013 21:20, schrieb Vladimir Kozlov:
> Thank you, Ulf
>
> I will rename method to encodeISOArray and add comment that it could be replaced by intrinsic by JVM.

Thanks, that's much better. Thinking about, I would more like encodeArrayToISO or just 
encodeToISO_8859_1.

> The same arrays were use intentionally in test to get performance of code without effect of CPU's 
> cache/memory subsystem.

I worry about, if the overhead of recalculating sp and dp + comparing ret != len + complicated 
calculation of len   will come to effect on short strings, at least on C1 and interpreter. So why 
not choose the best code for all these cases?

> The method encodeArrayLoop() is also compiled because it is invoked > 10000 times.

That is what I assumed.
But I see 2 corner cases:
- Programs with sparse use of ISO-8859-1 encoding will not profit of it, if the compile threshold 
becomes not reached. Also think about C1.
- I worry, that on small strings the performance of the the intrinsic surrounding code would come to 
some account, even if JIT-compiled, but specially on C1 and interpreter.
So would it hurt, to include those cases while tuning?

-Ulf




More information about the core-libs-dev mailing list