I've recently moved to a 64 bit OS on Windows Server 2008 Enterprise.
It seems that my java programs are running significantly slower than 32 bit on Windows 2003.
Would really any feedback.
Is this a known issue? Are there specific settings to improve performance?
(I'm aware that there is a small performance penalty for moving to 64bit but I'm seeing a significant performance hit).
With 64-bit JVM, you may see different performance however you will see much more difference using a different OS on a different machine.
If you want to see if using 64-bit references is slowing you down, you can enable -XX:+UseCompressedOops
which causes the 64-bit JVM to use 32-bit references but can still access 32 Gb of memory.
Another way to test this is to use a 32-bit JVM on your system. ;)
We have a latency sensitive system and see little performance advantage in using 32-bit references on a 64-bit JVM as it shifts every addres by 3 bits. The 32-bit JVMs smaller register set hurts us more than it helps.
EDIT: For more details
http://wikis.sun.com/display/HotSpotInternals/CompressedOops
http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html
http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/
Yes it is, take a look at the Hotspot FAQ.
8 byte pointers increase the code and data size and slow down everything. If you are looking for performance and won't need a big heap, try a 32bit Java VM.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With