[Mono-dev] mono numerical performance

Konrad M. Kruczyński konrad.kruczynski at gmail.com
Sun Nov 20 14:28:19 EST 2011


On Sun, 2011-11-20 at 19:39 +0100, Dawid Weiss wrote:
> 
> 
> As far as I know the final on local variables is only a hint for the
> java compiler (javac), not jit (hotspot) engine. Detection of loop
> invariants is done at runtime (during code jitting) so there's really
> no difference between any of the following in modern Java jits:

Maybe that's the reason there is no local readonly in the C# language -
local variables are easily trackable. As to those used in closures (as
mentioned by Jonathan) - as far as I know, they aren't local variables
actually but rather fields in compiler-generated class which represents
closure.

Btw, about the documenting intent part - some of these cases may
probably be covered by the Code Contracts.

> 
> 
> 1) (final) int max = array.length;
> for (int i = 0; i < max; i++) {}
> 
> 
> 2) for (int i = 0; i < array.length; i++) {}
> 
> 

Yes, hotspot does really good analysis these days.

--
Regards,
 Konrad




More information about the Mono-devel-list mailing list