I'm developing a JNI implementation similar to sun.misc.Unsafe but with extended memory management.

Why are the call times of native methods from sun.misc.Unsafe and from my developed library extremely different?

Some numbers:
sun.misc.Unsafe.getInt(address) takes ~1ns
when my similar method takes ~10ns

Both implementations are quite the same, following the source code of OpenJDK, just returning the variable by pointer. Both are registered in the same manner.

How can I speed up JNI calls? What makes Unsafe performance so special?

Thanks,
Yury/

Edit
Report