Performance of locally copied members ?
Ulf Zibis
Ulf.Zibis at gmx.de
Mon May 3 18:24:57 UTC 2010
Am 03.05.2010 19:29, schrieb Martin Buchholz:
> It's a coding style made popular by Doug Lea.
> It's an extreme optimization that probably isn't necessary;
> you can expect the JIT to make the same optimizations.
> (you can try to check the machine code yourself!)
> Nevertheless, copying to locals produces the smallest
> bytecode, and for low-level code it's nice to write code
> that's a little closer to the machine.
>
Much thanks!
Can I guess, that you agree, that j.n.X-Buffer classes are enough
low-level, to "correct" the code in that manner?
> Also, optimizations of finals (can cache even across volatile
> reads) could be better. John Rose is working on that.
>
> For some algorithms in j.u.c,
> copying to a local is necessary for correctness.
>
What is j.u.c ?
-Ulf
> Martin
>
> On Mon, May 3, 2010 at 04:40, Ulf Zibis<Ulf.Zibis at gmx.de> wrote:
>
>> Hi,
>>
>> in class String I often see member variables copied to local variables.
>> In java.nio.Buffer I don't see that (e.g. for "position" in nextPutIndex(int
>> nb)).
>> Now I'm wondering.
>>
>> From JMM (Java-Memory-Model) I learned, that jvm can hold non-volatile
>> variables in a cache for each thread, so e.g. even in CPU register for few
>> ones.
>> From this knowing, I don't understand, why doing the local caching manually
>> in String (and many other classes), instead trusting on the JVM.
>>
>> Can anybody help me in understanding this ?
>>
>> -Ulf
>>
>>
>>
>>
>
>
More information about the core-libs-dev
mailing list