JNI Performance

Bryce McKinlay bryce@mckinlay.net.nz
Mon Nov 10 00:35:00 GMT 2003


On Nov 10, 2003, at 1:11 PM, Tom Tromey wrote:

> There is a sort of open question about binary compatibility and
> low-level calls.  Our JNI stubs make direct calls into libgcj.  So
> does java code, e.g. we generate direct calls to _Jv_Throw.

Well, I don't see any problem with that as far as binary compatibility 
is concerned. Things like _Jv_Throw have well-defined semantics, and as 
the maintainers of the runtime, we are in a good position to make sure 
that they don't change in incompatible ways. After all, things like 
glibc use the C ABI as well and don't seem to have much problem 
maintaining binary compatibility (in general) between releases).

You could argue that the C ABI's symbol lookups and PLT indirections 
are a performance penalty, but operating systems seem to be moving 
towards prelinking/prebinding models to prevent this. So I'm pretty 
happy with the way we do it now.

Regards

Bryce.




More information about the Java mailing list