JIT and AOT compilation
843829Apr 4 2002 — edited Apr 5 2002Hi there..
My question has to do with improving performance.
Currently there exist a few techniques that improve Java's
performance. I would like to concentrate on two of them:
Just-In-Time compilation and Ahead-Of-Time compilation. I know
what which one is doing but i am still confused about a specific
thing. JIT compilers, generate native code while still maintain the
JVM as some interpretations still need to be done. My question is
with the utilization of a JIT compiler is the application still platform-
indepedent (can i still run the application on a Unix machine for
example?) if not then what is the advantage over AOT compilers?
Conversely, AOT generate native code in a similar way like that in
C/C++ and other static compilers so i suppose there is no question
about maintaining portability.
Finally, i would like to ask you something last. In an application
that i developed i am using some JNI code in order to access
hardware ports with java (i.e. some AD/DA interface card). I
generated the DLL library with Visual C++ on windows 98. I tried to
run my application (i.e. normal bytecode files) to a machine with
windows NT and i got some error about the DLL native code. Does
that mean that i lose portability whenever i use JNI? is the
generated library platform depended? What is the solution to this
problem? Do i have to create a DLL file in a windows NT machine?
and in general in every different machine that i want to run my
application on?
Sorry for this lengthy post.
Thanks in advance,
John