SV: generic type support

Øyvind Harboe oyvind.harboe@zylin.com
Thu Feb 20 11:40:00 GMT 2003


> > The problem is that the profiling pattern is not known before the
> > application is deployed. The profiling pattern changes with data
> > processed.
>
>In which case profile directed optimization is invalid, because the
>profile might equally well be wrong for the next run of data.  Profile
>directed optimization pretty much assumes that the pattern of usage is
>consistent between runs.

The idea is that the profiling/JIT process is an iterative process. 

However, I don't want to give up profiling on development machine just because I have
profiling on the deployment machine. Also, the profiling/JIT process could benefit
from being explicitly directed by the programmer.

E.g. Lets say a flag was added to Java bytecode

void __reallyoptimizethisoneidontcarehowlongittakes foo() {}

 
>With regard to getting the best performance from a specific chip,
>there seems to be a choice here:
>
>  a) Compile from bytecode during installation.
>  b) Compile from source during installation.
>
>  ... and then perhaps recompile with profile directed optimization.
>  Alternatively, a profile could be delivered with the application.
>
>Why will a) necessarily be better than b)?

Sourcecode has all the information that the bytecodes contain + more. Sourcecode is
better input to the compiler, no argument from me on that one.

Why do we have bytecodes at all? 

- Less work happens on deployment machine
- IP protection

Unix has done source to native compilation on deployment machines since forever.



More information about the Java mailing list