Производительность Java 64 бит - PullRequest
9 голосов
/ 08 февраля 2011

Я недавно перешел на 64-битную ОС на Windows Server 2008 Enterprise.

Кажется, что мои Java-программы работают значительно медленнее, чем 32-битные на Windows 2003.

Действительнолюбой отзыв.

Это известная проблема?Существуют ли специальные настройки для повышения производительности?

(я знаю, что при переходе на 64-битную версию наблюдается небольшое снижение производительности, но я вижу значительный удар по производительности).

Ответы [ 2 ]

7 голосов
/ 08 февраля 2011

При использовании 64-разрядной JVM производительность может быть разной, однако при использовании другой ОС на другом компьютере вы увидите гораздо больше различий.

Если вы хотите увидеть, замедляет ли использование 64-разрядных ссылоквниз, вы можете включить -XX:+UseCompressedOops, что приведет к тому, что 64-битная JVM будет использовать 32-битные ссылки, но при этом все равно сможет получить доступ к 32 ГБ памяти.

Другой способ проверить это - использовать 32-битную JVM наваша система.;)

У нас есть система, чувствительная к задержкам, и мы видим небольшое преимущество в производительности при использовании 32-битных ссылок на 64-битной JVM, поскольку она смещает каждый адрес на 3 бита.Меньший набор регистров 32-битных JVM причиняет нам больший вред, чем помогает.

РЕДАКТИРОВАТЬ: Для получения более подробной информации

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/

3 голосов
/ 08 февраля 2011

Да, посмотрите на Hotspot FAQ .

8-байтовые указатели увеличивают код и размер данных и замедляют все.Если вы ищете производительность и вам не нужна большая куча, попробуйте 32-битную Java VM.

...