3 ms·
tl;dr: HotSpot doesn't seem to optimize a data copying loop for code that uses sun.misc.Unsafe, due to unknown reasons. Thus, we can generate bytecode at runtim
by MrBuddyCasino 11y ago
tl;dr: HotSpot doesn't seem to optimize a data copying loop for code that uses sun.misc.Unsafe, due to unknown reasons. Thus, we can generate bytecode at runtime to unroll said loop to make things go twice as fast.
Does anyone know if Unsafe is indeed blacklisted for JIT optimisations?
- Apanatshka 11y agoNo, Unsafe is not blacklisted from JIT afaik. Although be careful that a helper method using Unsafe usually doesn't get inlined. The problem in this case is the loop. It ranges over a long, and where int loops get a lot of optimisations, long loops don't (yet, they're aware of the issue)
- thebramp 11y agoDo you know a way to test that the long loop is the issue? or is this an educated guess based on your knowledge of the JIT?